最近写JAVA WEB的一个项目,发现项目的异常处理机制很混乱,不知道是该捕获还是该抛出,所以仔细想了想,总结了一下,不知道是不是完全对。
什么样的异常应该捕获,什么样的异常应该抛出?
1.如果开发的系统正式上线运营,而这时系统里的某些异常可能导致服务器down掉或者有影响,就应该对异常进行捕获处理。
2.在该throw的时候你catch了,那么它上一层的方法原本需要遇异常就要停止的,你再里面就已经catch了,那么它就不会停止运行。同理,catch的时候你throw了,而上一层的方法并不需要你throw的这个异常,这就是底层方法的不负责了,这样可能导致上层方法混乱。
3.异常要抛到最三层结构的最高层,然后输出,并且处理,这样你的程序才健壮。
4.个人觉得如果你知道应该出现这个异常应该怎么处理,就应该捕获,捕获处理之后还可以再次抛出,看上层是否需要了;如果你不知道该如何处理这个异常,那么捕获也是没用,捕到了也是不知道如何处理,还得抛出去,否则异常就丢了。