异常

Java代码在运行时期发生的问题,就是异常。

在Java中,把异常信息封装成一个类。当发生问题时,就会创建异常类对象并抛出相应的异常信息(异常出现的位置和异常发生的原因等)。

异常的处理方式有两种,一种是将异常盘抛给调用者处理,而是使用try……catch……语句捕获异常进行处理。

发生异常时,若没有对异常进行处理,程序结束执行。

1、抛出异常

使用格式:

  throw new 异常类名(参数);

练习throw的使用

2、声明异常

将问题声明出来,报告给调用者。如果方法通过throws抛出了编译时异常,而没有捕获处理,那么必须通过throws进行声明,让调用者去处理。

声明异常格式:

修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2…… {}

3、捕获异常

捕获异常格式:

try {

  需要被检测的语句

} catch (异常类型 变量) {

  异常的处理语句

} finally {

  一定会被执行的语句

}

try:该代码块内的语句可能发生异常

catch:实现对异常的捕获,对异常进行处理

finally:无论异常是否发生都必须被执行的代码

4、异常在方法中重写细节

子类覆盖父类方法时,如果父类方法声明异常,子类只能声明父类异常或该异常的子异常或不声明。

当父类方法声明多个异常时,子类覆盖时只能声明多个异常的子集。

被覆盖的方法没有声明异常,子类覆盖时也不能声明异常。

父类方法中没有声明异常,而子类重写方法有异常,不能声明异常,只能catch捕获。处理不了的异常在catch中继续throw抛出,但只能将异常装换为RuntimeException的子类抛出。

5、异常中的常用方法

  • String getMessage():返回异常的详细信息字符串,即异常的提示信息。
  • void printStackTrace():在控制台输出异常的详细信息,包括异常的名称和发生异常的位置。
  • String toString():返回异常名称与详细信息的字符串。

原文地址:https://www.cnblogs.com/alphajuns/p/9881701.html