为什么有的异常不需要try-catch
程序员文章站
2022-03-08 16:09:51
...
校验参数不合法的时候,想使用异常来中断代码执行,并捕捉异常信息,于是
extends RuntimeException
自定义了异常类,使用时候
throw new ParaException(key + "不能为空");
并且在方法声明的时候throws了异常,但是发现调用这个方法的时候,idea不提示使用try-catch或者throws处理,所以没办法获取异常信息,疑惑。。。其实是因为,java中的异常分为运行型异常和编译型异常;运行型异常出现的时候,直接从堆栈中push运行代码,code的时候不需要处理;编译型异常code的时候需要try-catch或者throws处理,出现的时候会中断try代码块的执行,转向catch代码块,或者中断当前方法的执行;自定义异常类时,如果 extends RuntimeException,就是运行型异常;需要获取异常信息时,需要自定义编译型异常:
extends Exception