为什么有的异常不需要try-catch

校验参数不合法的时候,想使用异常来中断代码执行,并捕捉异常信息,于是

extends RuntimeException

自定义了异常类,使用时候

throw new ParaException(key + "不能为空");

并且在方法声明的时候throws了异常,但是发现调用这个方法的时候,idea不提示使用try-catch或者throws处理,所以没办法获取异常信息,疑惑。。。其实是因为,java中的异常分为运行型异常编译型异常;运行型异常出现的时候,直接从堆栈中push运行代码,code的时候不需要处理;编译型异常code的时候需要try-catch或者throws处理,出现的时候会中断try代码块的执行,转向catch代码块,或者中断当前方法的执行;自定义异常类时,如果 extends RuntimeException,就是运行型异常;需要获取异常信息时,需要自定义编译型异常:

extends Exception

运行型异常可以通过控制业务逻辑、校验必要变量参数健壮代码来避免。

猜你喜欢

转载自blog.csdn.net/yan2014yuan/article/details/84502504