您的位置:首页 > 职场人生

黑马程序员————异常(day12)

2013-09-12 21:14 232 查看
-----------android培训java培训、java学习型技术博客、期待与您交流! ------------
第十二天 异常

1. 异常体系

Throwable 所有异常和错误的父类

toString()

getMessage()

printStackTrace() 最长用,信息量最大,JVM调用的也是这样方法

Error

Exception 所有异常的父类

RuntimeException

其他派系

2. 异常的第一种处理方法

try{

检测的代码

可能出现异常的代码

如果出现以后,以后的代码(try内的)不在运行,跳转到catch去了

}catch(异常类 变量){

处理方法

}

3. 方法内部抛出异常 (第二种异常处理方法,抛出异常)

如果方法内部抛出异常,选择try catch来处理

在方法的声明上,继续抛出 throws 异常类

如果我们调用了抛出异常方法,可以选择try catch处理,也可以继续抛出

但是,到了最终的调用者,不要在抛出了

throw throws

throw 作用在方法内,抛出异常对象,关键字后面跟随的是 new 异常对象

throws 作用在方法的声明生,后面跟随的是异常类

4. 编译时期异常与运行时期异常

编译时期异常,调用了一个抛出异常的方法,没有进行处理,编译失败

运行时期异常,运行时候,出现的异常

RuntimeException 运行时异常

如果方法内部,抛出的是RuntimeException或者是它的子类的异常

方法的声明生,无需在使用throws进行抛出

对于调用者,不需要对异常进行处理

原因是(********):

运行时期异常,在程序运行中,是不允许出现了,如果出现了,java工程师,希望

程序停止运行,并让开发者,修改代码

抛出运行时期异常,不需要声明,也不需要处理,发生了就要停止程序了

ClassCastException

NullPointerException

ArrayIndexOutOfBoundsException

5. 自定义异常

java中目前所有的异常对象,也可能不够我们使用

自定义异常 前提,继承异常类Exception,入伙

凡是异常类,都具备可抛性

如果我们定义的是运行时期异常,继承RuntimeException

需要将异常的信息,传递给自定义异常的父类,用super();

6. finally代码块

配合try catch 处理 来进行使用

finally代码块中的程序,是一定要执行的

finally一般用于关闭资源

面试题 final finally finalize

7. 继承中子类和父类类异常的抛出特点

子类覆盖父类的方法,如果父类方法不抛异常,子类也不能抛出异常

子类覆盖父类的方法,如果父类方法抛出异常,子类可以抛出,也可以不抛出异常

但是,子类抛出的异常,不能"大于"父类抛出的异常

8. 异常练习题

老师上课,用笔记本上

笔记本会出现异常,蓝屏异常,冒烟异常

笔记本有3个状体,正常状态上课

老师调用笔记本的开机功能上课,如果出现异常,该怎么办?

需要几个类 ,2个自定义异常类,一个是蓝屏,一个是冒烟

笔记本类

老师调用笔记本的功能上课

测试运行的
-----------android培训java培训、java学习型技术博客、期待与您交流! ------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: