java编写自定义异常

注意:如果你是maven聚合项目,那么你要写在dao模块。也就是最底层的模块,方便引用,否则你就需要每个聚合模块都要引一遍。

 

在Java使用自定义异常就跟你和女朋友相处是一样的,首先你要知道你为什么要跟你女朋友在一起,你女朋友有哪些好处,有哪些不好的地方,再来和你女朋友谈婚论嫁过一辈子。

为什么要使用自定义异常

1.我们在工作的时候,项目是分模块或者分功能开发的,基本不会是一个人开发一整个项目,使用自定义异常类就统一了对外异常展示的方式。

2.有时候我们遇到某些校验或者问题的时候,需要直接结束掉当前的请求,这时便可以通过抛出自定义异常来结束。如果你的项目中使用了SpringMVC比较新的版本的话有控制器增强,可以通过@ControllerAdvice注解写一个控制器增强类来拦截自定义的异常并响应给前端响应的信息。

3.自定义异常可以在我们的项目中某些特俗的业务逻辑时抛出异常。

4.使用自定义异常继承相关的异常来抛出处理后的异常信息,可以隐藏底层的异常。这样更安全,异常信息也会更加直观。自定义异常可以抛出我们自己想要抛出的异常,可以通过抛出的信息区分异常发生的位置,根据异常名我们就可以知道哪里有异常,根据异常提示信息对程序进行修改。比如空指针异常NullPointException,我们可以抛出信息为"XXX为空"的定位异常位置,而不用输出堆栈信息(默认异常抛出的信息)。

自定义异常的缺点

毋庸置疑,我们不能期待JVM自动抛出一个自定义异常,也不能期待JVM会自动处理一个自定义异常。发现异常、抛出异常和处理异常的工作必须靠编程人员在代码中利用异常处理机制自己完成。这样就相应地增加了一些开发成本和工作量,所以项目没必要的话,也不一定非得要用上自定义异常,要能够自己去权衡。

自定义异常的规则

在Java中可以自定义异常,编写自己的异常类时需要记住以下几点:

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

2.如果希望写一个检查异常类,则需要继承Exception类。

3.如果希望写一个运行时异常类,则需要继承RuntimeException类。

自定义异常的定义与使用

public class CommonException extends RuntimeException {
    public CommonException(String msg) {
        super(msg);
    }
}
public void testCommonException() {
    throw new CommonException("错误");
}

就是一个很简单的例子。

posted @ 2019-10-05 17:06  expworld  阅读(1003)  评论(0编辑  收藏  举报