为啥需要自定义异常类[重复]

Posted

技术标签:

【中文标题】为啥需要自定义异常类[重复]【英文标题】:Why Custom exception class is needed [duplicate]为什么需要自定义异常类[重复] 【发布时间】:2019-11-12 02:22:46 【问题描述】:

在自定义异常类中我们调用超类(Exception class)的构造函数。为什么不直接调用Exception类构造函数而不是自定义类构造函数呢?请在下面找到示例

class InvalidAgeException extends Exception 
    InvalidAgeException(String s) 
        super(s);
    


class TestCustomException1 

    static void validate(int age) throws InvalidAgeException 
        if (age < 18) 
            throw new InvalidAgeException("not valid");
        
        else 
            System.out.println("welcome to vote");
        
    

    public static void main(String args[])  
        try   
            validate(13);  
        
        catch (Exception m) 
            System.out.println("Exception occured: " + m);
        
        System.out.println("rest of the code...");
    

在上面的例子中我们可以使用 throw new Exception("not valid"); 那么这里自定义异常类有什么用呢?

【问题讨论】:

使用throw new Exception("not valid"); - 在阅读日志时您怎么知道它应该是InvalidAgeException 【参考方案1】:

因为它让调用代码可以更好地控制它需要关心的异常。在这种情况下,main 仅捕获基类 Exception,但如果将来有人添加一个关心无效年龄而不关心其他类型异常的方法怎么办?

【讨论】:

以上是关于为啥需要自定义异常类[重复]的主要内容,如果未能解决你的问题,请参考以下文章

自定义异常

201671010127 2016-2017-9 认识自定义异常类

Java 求大神们解答:自定义异常,处理异常

Java -- 异常的捕获及处理 -- 自定义异常类

十一、SpringMVC之自定义异常处理器

自定义异常类