- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11-异常课案
第十一天、异常
今日任务
什么是异常
异常怎么发生的
异常的处理
异常的作用
异常的简单应用
自定义异常
Java中异常的体系
异常的细节
学习目标
了解异常的概念、发生过程和作用
理解Exception和RuntimeException的区别
掌握自定义异常的方法
掌握异常的两种处理方式;
Object类简介
Object类简介
Object,是Java一切对象的最高父类;如果一个类没有显示继承一个类,他的父类就是Object;
它描述的是Java世界里所有对象最最共性的信息,它的类型的变量,可以指代Java中的所有对象,相当于我们生活中说的“东西”这个词;
equals方法:
equals方法,作用就是比较两个对象是否 相等;
生活中的相等性比较:
班长买了个手机;卫挺也买了个手机,然后就有可能比较两个手机是否一样;
比如,手机的品牌、价格、尺寸、外观等等都一样,就可以认为是两个一样的东西;
我们发现直接使用从Object类中继承的equals方法,不能满足我们的需要,然后查看源代码中的实现:
所以需要重写这个equals方法,以满足我们的需求;
一般开发中,都要重写一个对象的equals方法;
toString方法
根据描述发现,直接从object类继承来的toString方法,也是不符合我们的使用要求的;
我们更希望可以直接输出对象的属性值,所以需要重写toString方法;
异常介绍
前面一直在教大家怎么写好一个程序;但是,对于程序中有可能出现的问题,以及出现问题该怎么解决,都没说过;今天,我们就来学习这方面的东西;
异常的概念
异常:就是不正常;
生活中的不正常:生病;电脑突然蓝屏;骑车突然掉链子等等等等……
程序中的不正常:就是程序不出现我们预期的结果;
Java中的异常:空指针异常;下标越界异常;类型转换异常……
因为一般程序都要使用第三方数据,或者都有接受客户的输入信息,但是这些第三方数据和客户输入的数据都是不可控的,所以程序中有可能会出现各种异常情况,这是无法避免的;
关键在于,除了问题怎么解决,有没有预备方案;
一个程序的好坏,不在于它不会出现异常,而在于除了异常,也有预备方案,可以继续工作;
要应对程序中可能发生的问题,就要研究程序中异常是怎么发生的;
异常的发生过程
异常的处理
生活中,如果做一件事情,出了意外,一般也是两种处理方式:
要么自己能解决,就自己解决;
自己解决不了,就将问题报告给上一级;
在java程序中,异常的处理也是类似的两种情况:
自己处理不了,就讲问题的信息报告给调用者,叫做异常的声明;
自己能够处理,就自己处理了,叫做异常的捕获;
异常的声明
异常声明的方法,是使用关键字:throws ;
怎么做呢?
在方法的参数列表后面,大括号前面,使用throws关键字,将程序中可能会出现的问题都写上;
声明之后,在别的函数调用你这个函数时,就知道你可能会有问题发生,就可以提前在函数中做一些相应的处理;
异常的捕获
在可能会发生异常的代码周围,使用代码块将这里可能会抛出的异常进行捕获,捕获后,JVM抛出的异常就不想函数的调用者传递了,而是可以被我们书写的代码处理;
try{
可能会抛出异常的代码;
}
catch(定义变量,接受可能会捕获到的异常对象){
捕获到异常后,就会执行这里的代码;
}finally{
//表示这里的代码必须会执行到;
}
异常的作用
通过上面简单的处理,我们发现,如果不做处理,程序中一旦有点小问题,整个JVM就会停止,程序就会结束运行;
而合理使用异常和异常的处理,就会发现,即使程序中出现了问题,也有预备方案进行解决,程序还可以正常工作;
提高了程序的健壮性(鲁棒性);
程序的健壮性,指的就是程序应对复杂问题还能正常工作的能力;
简单示例:
合理的使用异常,还可以向使用者那个这显示更详细的问题的信息,方便开发和使用者处理问题;
自定义异常
问题:JDK自己提供的异常很全面,根据开发中大多数问题,都有相应的异常类,但是我们使用起来是比较麻烦的;
异常类太长,记忆和书写都不方便;
异常类很多,开发者不可能都记下来,使用时就很不方便;
为了使用方便,需要我们自己定义异常类;开发者自己定义的异常类,就叫做自定义异常;
自定义异常
我们要写的异常,不能继承Error类,因为人家表示的是严重的问题,是不应该被程序自己处理的问题;
那么我们写的异常,就应该是继承Exception或者它的子类;
自定义异常类:
总结自定义异常的方法:
首先写一个类,让这个类继承Exception类或者它的子类;
然后给这个类写几个构造函数,写什么构造函数,根据你怎么使用而定;
在这些构造函数中,调用父类构造函数,将传入的参数传给父类;
异常的体系和分类
编译时异常,指的不是编译期发生的异常,而是
文档评论(0)