异 常:★★★★
--java.lang.Throwable:
Throwable:可抛出的。
**|--Error:**错误,一般情况下,不编写针对性的代码进行处理,通常是jvm发生的,需要对程序进行修正。
**|--Exception:**异常,可以有针对性的处理方式
这个体系中的所有类和对象都具备一个独有的特点;就是可抛性。
可抛性的体现:就是这个体系中的类和对象都可以被throws和throw两个关键字所操作。
- throw与throws区别:
throws是用来声明一个方法可能抛出的所有异常信息,而throw则是指抛出的一个具体的异常类型。此外throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理。
throw用于抛出异常对象,后面跟的是异常对象;throw用在函数内。
throws用于抛出异常类,后面跟的异常类名,可以跟多个,用逗号隔开。throws用在函数上。
throws格式:方法名(参数)throws 异常类1,异常类2,.....
throw:就是自己进行异常处理,处理的时候有两种方式,要么自己捕获异常(也就是try catch进行捕捉),要么声明抛出一个异常(就是throws 异常~~)。
- 处理方式有两种:1、捕捉;2、抛出。
对于捕捉:java有针对性的语句块进行处理。
try {
** 需要被检测的代码;**
}
catch(异常类 变量名){
** 异常处理代码;**
}
fianlly{
** 一定会执行的代码;**
}
- 定义异常处理时,什么时候定义try,什么时候定义throws呢?
功能内部如果出现异常,如果内部可以处理,就用try;
如果功能内部处理不了,就必须声明出来,让调用者处理。使用throws抛出,交给调用者处理。谁调用了这个功能谁就是调用者;
- 自定义异常的步骤:
1:定义一个子类继承Exception或RuntimeException,让该类具备可抛性(既可以使用throw和throws去调用此类)。
2:通过throw 或者throws进行操作。
-
异常的转换思想:当出现的异常是调用者处理不了的,就需要将此异常转换为一个调用者可以处理的异常抛出。
-
try catch finally的几种结合方式:
[图片上传失败...(image-475f69-1572266386829)]
[图片上传失败...(image-2dadd8-1572266386829)]
1,
try
catch
finally
这种情况,如果出现异常,并不处理,但是资源一定关闭,所以try finally集合只为关闭资源。
- 记住:finally很有用,主要用户关闭资源。无论是否发生异常,资源都必须进行关闭。
System.exit(0); //退出jvm,只有这种情况finally不执行。
- 注意:
如果父类或者接口中的方法没有抛出过异常,那么子类是不可以抛出异常的,如果子类的覆盖的方法中出现了异常,只能try不能throws。
如果这个异常子类无法处理,已经影响了子类方法的具体运算,这时可以在子类方法中,通过throw抛出RuntimeException异常或者其子类,这样,子类的方法上是不需要throws声明的。
网友评论