关于Exception和RuntimeException

今天在自定义异常的时候,被难住了,不知道该继承Exception还是RuntimeException(没办法,基础太差。。),然后就研究了一下,显示看了Exception和RuntimeException的源码,没发现啥。。。后来百度了一下,发现都说RuntimeException不需要处理,而其他的异常需要处理,半懂不懂。。后来自己写了两行代码,有点明白了。

方法a抛出了RuntimeException,方法b抛出了非RuntimeException,方法c里面编译报红了,说没有对非RuntimeException进行处理,明白了吧? 有时候我们的代码运行时会报空指针,但是我们在code的时候也没发现报红啊,因为这个是RunTimeException,不需要处理。

至于继承哪个,还是看具体使用了,不过一般是RuntimeException,因为不需要处理啊,写业务逻辑的时候,直接throw出来就可以了,调用者不需要去处理,由exceptionHandler 统一去处理就行了。

再说一下统一处理自定义异常这块吧。很简单,搞一个类,上面加上@RestControllerAdvice或者@ControllerAdvice,算了还是贴代码吧。。。

再说下 throw和throws的区别,throw表示明确的抛出一个异常,throws在方法上,表示这个方法有可能会出现某个异常,调用这个方法的人要注意了,到时候你得处理一下。

虽然网上一搜一大堆,但是自己写一遍加深记忆

猜你喜欢

转载自blog.csdn.net/localhost_Jay/article/details/86622336
今日推荐