Java基础-异常-自定义异常

Java工程师知识树 / Java基础


1. 为什么使用自定义异常

在代码中使用自定义的异常类,可以对异常进行统一的封装处理。

自定义异常可以使得整个项目的异常处理更规范、更统一、更优雅。同时,使得日志的记录上更加清晰,便于后续查日志定位问题

当然自定义异常也有缺点:发现异常、抛出异常以及处理异常的工作必须靠编程人员在代码中利用异常处理机制完成。这样就相应的增加了一些开发成本和工作量,所以项目没必要的话,也不一定非得要用上自定义异常,需要自己去权衡。

2. 自定义异常类的格式:

格式:

public class xxxException extends Exception | RuntimeException {
    添加一个空参数的构造方法
    添加一个带异常信息的构造方法
}

3. 所有异常都必须是 Throwable 的子类

自定义异常类必须要继承Exception|RuntimeException才有意义。

继承Exception : 那么自定义的异常类是一个检查异常,如果方法内部出现了检查异常,那么必须处理这个异常,要么try..catch,要么throws

继承RuntimeException :那么自定义的异常类是一个运行时异常,无需处理,交给虚拟机处理

4. 实例

通过继承 Exception 来实现自定义异常:

class WrongInputException extends Exception {  // 自定义的类
    WrongInputException(String s) {
        super(s);
    }
}
class Input {
    void method() throws WrongInputException {
        throw new WrongInputException("Wrong input"); // 抛出自定义的类
    }
}
class TestInput {
    public static void main(String[] args){
        try {
            new Input().method();
        } catch (WrongInputException wie) {
            System.out.println(wie.getMessage());
        }
    } 
}

以上代码运行输出结果为:

Wrong input

你可能感兴趣的:(Java基础-异常-自定义异常)