软件构造-异常与异常处理

Exception类的层次
软件构造-异常与异常处理_第1张图片
Exception 类是 Throwable 类的子类,可以被捕获与处理。
Error也是Throwable类的子类,用来指示运行时环境发生的错误,例如,JVM 内存溢出。
Java 程序通常不捕获错误。错误一般发生在严重故障时,它们在Java程序处理的范畴之外。

Exception的用途:

使用异常处理可以将业务逻辑代码与错误处理代码分离
不使用异常处理:
软件构造-异常与异常处理_第2张图片
使用异常处理:软件构造-异常与异常处理_第3张图片
捕获异常的方法:

try {
   // 程序代码
} catch(ExceptionName e1) {
   //Catch 块
}

多重异常处理:

try{
   // 程序代码
}catch(异常类型1 异常的变量名1){
  // 程序代码
}catch(异常类型2 异常的变量名2){
  // 程序代码
}catch(异常类型2 异常的变量名2){
  // 程序代码
}

throws关键字
和声明函数返回值相似,用来告诉编译器函数可能抛出的异常
软件构造-异常与异常处理_第4张图片
一个函数可以抛出多个异常,异常之间用逗号分隔
软件构造-异常与异常处理_第5张图片
Throw关键字
抛出异常

throw new EOFException(); 

或者

EOFException e = new EOFException();
throw e;

也可以自己定义合适的异常类,然后声明并抛出该异常。

一旦方法抛出一个异常,它就不会返回 到调用者,这意味着不需要担心会产生默认返回值或错误编码。

自定义异常

class MyException extends Exception{
}

自定义异常需要继承Exception类或Exception的子类

一个例子:
软件构造-异常与异常处理_第6张图片
还可以通过在自定义异常类中加入内部变量与方法来传递其他有用信息。

在软件构造实验中的运用
自定义异常类:
软件构造-异常与异常处理_第7张图片
定义的抽象类与继承它的子类:
软件构造-异常与异常处理_第8张图片
软件构造-异常与异常处理_第9张图片
抛出异常:
软件构造-异常与异常处理_第10张图片
捕获异常:
软件构造-异常与异常处理_第11张图片

通过自定义Exception类以及异常的抛出与捕获,可以更有效的让人了解程序中发生的异常并处理相应的异常。

你可能感兴趣的:(软件构造-异常与异常处理)