[软件构造]异常的捕获与自定义

JAVA中异常的分类

异常的根接口Throwable,其下有2个子接口,Error和Exception。

Error:指的是JVM错误,这时的程序并没有执行,无法处理。与代码无关,程序员通常无能为力,一旦发生,想办法让程序优雅的结束。也可以通过对外部环境的配置解决问题,如用户输入错误、设备错误、物理限制等。

Exception:指的是程序运行中产生的异常,可以使用处理格式处理。

JAVA中异常的关键字

Java异常机制用到的关键字:try、catch、finally、throw、throws。

try -- 用于监听。将要被监听的代码,即可能抛出异常的代码,放在try语句块之内。当try语句块内发生异常时,异常就被抛出。

catch -- 用于捕获异常。catch用来捕获try语句块中发生的异常。

finally -- 无论是否捕捉到异常,无论try和catch中有无return语句,finally语句块总是会被执行。它主要用于回收在try块里打开的物力资源(比如在try中打开文件进行读取,则要在finally中关闭文件)。

throw -- 用于抛出异常。

throws -- 用在方法声明中,用于声明该方法可能抛出的异常。

异常的处理方案

    try{
        /*可能会发生的异常的语句*/
    }
    catch(异常类型 异常名(变量)){
        /*针对异常进行处理的代码*/
    }
    catch(异常类型 异常名(变量)){
        /*针对异常进行处理的代码*/
    }/*如果有多个异常,则添加多个catch语句进行捕获*/
    finally{
       /*释放资源代码*/
    }

一些注意点:
1.finally语句可以省略不写
2.try, catch, finally块之间不能添加任何代码。
3.异常如果是同级关系,catch谁前谁后没有关系;如果异常之间存在上下级关系,上级需要放在后面

自定义异常

public class XxxException extends Exception {
    /*无参构造函数*/
    public XxxException(){
        super();
    }
    
    /*用详细信息指定一个异常,Throwable类中的getMessage()方法就是用来返回异常的详细信息的*/
    public XxxException(String message){
        super(message);
    }

    /*用指定原因构造一个新的异常,Throwable类中的getCause()方法就是用来返回异常的原因的*/
    public XxxException(Throwable cause) {
        super(cause);
    }

    /*用指定的详细信息和原因构造一个新的异常*/
    public XxxException(String message, Throwable cause){
        super(message,cause);
    }  
}
原文地址:https://www.cnblogs.com/lsykk/p/14989555.html