异常
异常中的不正常情况分成两大类:
Throwable:无论是error还是异常。问题发生之后就可以被抛出,让调用者知道并且处理。
throws throw,凡是可以被这两个关键字所操作的类和对象都具备可抛性。
1. 一般不可处理的 Error
特点: 由jvm抛出的严重性的问题(问题发生时一般不针对性处理,直接修改程序)
2.可以处理的 Exception
异常的分类:
编译时被检测异常:只要是Exception 和其子类都是 除了特殊子类RuntimeException体系
这种问题一旦出现希望在编译时就进行检测,让这种问题有对应的处理方式。(这样的问题都可以针对性处理)
编译时不检测异常(运行时异常):就是Exception中的RuntimeException和其子类
这种问题的发生 无法让功能继续,运算无法进行,更多是因为调用者导致的,或者引发了内部的状态的改变导致的
这种问题 一般不处理,直接编译通过,在运行时让调用者调用时强制停止。让调用者对代码进行修正。
在自定义异常时 要么继承Exception 要么继承RuntimeException
throws 和throw 的区别:
1 throws使用在函数上
throw使用在函数内
2 throws抛出的是异常类,可以抛出多个,用逗号隔开
throw抛出的是异常对象
异常处理的捕捉形式:
try
{
//需要被检测的异常
}
catch(异常类 异常对象) //该变量用于接收发生的异常对象
{
//处理异常的代码
}
finally
{
//一定会被执行的代码
}
finally
finally 中若是有返回值 则会覆盖try 和 catch 中的返回值
finally 中的返回值会抑制前面try和catch中的异常
finally中的异常会覆盖前面try和catch中的异常
因为finally中的代码一定会执行
浙公网安备 33010602011771号