异常

异 常:★★★★

--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声明的。

你可能感兴趣的:(异常)