runtimeexception
今天在自定义异常的时候,被难住了,不知道该继承Exception还是runtimeexception(没办法,基础太差。。),然后就研究了一下,显示看了Exception和RuntimeException的源码,没发现啥。。。后来百度了一下,发现都说RuntimeException不需要处理,而其他的异常需要处理,半懂不懂。。后来自己写了两行代码,有点明白了。
方法a抛出了RuntimeException,方法b抛出了非RuntimeException,方法c里面编译报红了,说没有对非RuntimeException进行处理,明白了吧? 有时候我们的代码运行时会报空指针,但是我们在code的时候也没发现报红啊,因为这个是RunTimeException,不需要处理。
至于继承哪个,还是看具体使用了,不过一般是RuntimeException,因为不需要处理啊,写业务逻辑的时候,直接throw出来就可以了,调用者不需要去处理,由exceptionhandler 统一去处理就行了。
再说一下统一处理自定义异常这块吧。很简单,搞一个类,上面加上@RestcontrollerAdvice或者@ControllerAdvice,算了还是贴代码吧。。。
再说下 throw和throws的区别,throw表示明确的抛出一个异常,throws在方法上,表示这个方法有可能会出现某个异常,调用这个方法的人要注意了,到时候你得处理一下。
虽然网上一搜一大堆,但是自己写一遍加深记忆
相关阅读
关于导致java.lang.InstantiationException异常的原因
这个异常多半是由于通过反射在实例化的时候,对应的类里面覆盖了无参构造而导致无法实例化,由于创建类的时候,默认有一个无参构造,前提
关于一个奇怪的ClassCastException:android.widget.RelativeLayout$LayoutParams cannot be cast to android.support.v4.widget.D
java.lang.NumberFormatException: null原因
分享一个bug,java.lang.NumberFormatException: null从网上看的很多解决方案说是:类型转换错误parseInt转换会触发NumberFormatExce
eclipse报错EXCEPTION_ACCESS_VIOLATION (0xc0000005)
最近使用eclipse做项目,出现了一个问题,代码写着写着,eclipse软件就直接自动关闭了,半个小时一行代码都没改完,很烦。然后看了问题日志
java.lang.InstantiationException 实例化异常
问题描述 利用JAVA反射来获取某一个实例,发现异常:java.lang.InstantiationException 实例化异常。 报错原因 当试图通过newIns