Java的自定义异常

天涯浪子 提交于 2019-11-30 00:46:59

Java标准库定义的常用异常包括:
在这里插入图片描述
当我们在代码中需要抛出异常时,尽量使用JDK已定义的异常类型。例如,参数检查不合法,应该抛出 IllegalArgumentException

static void process1(int age) {
    if (age <= 0) {
        throw new IllegalArgumentException();
    }
}

在一个大型项目中,可以自定义新的异常类型,但是,保持一个合理的异常继承体系是非常重要的。

一个常见的做法是自定义一个 BaseException 作为“ 根异常 ”,然后,派生出各种业务类型的异常。

BaseException 需要从一个适合的 Exception 派生,通常建议从 RuntimeException 派生:

public class BaseException extends RuntimeException {
}

其他业务类型的异常就可以从 BaseException 派生:

public class UserNotFoundException extends BaseException {
}

public class LoginFailedException extends BaseException {
}

...

自定义的 BaseException 应该提供多个构造方法:

public class BaseException extends RuntimeException {
    public BaseException() {
        super();
    }

    public BaseException(String message, Throwable cause) {
        super(message, cause);
    }

    public BaseException(String message) {
        super(message);
    }

    public BaseException(Throwable cause) {
        super(cause);
    }
}

上述构造方法实际上都是原样照抄 RuntimeException 。这样,抛出异常的时候,就可以选择合适的构造方法。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!