自己在自学时对异常的一点感悟,感觉对你有帮助的 帮忙点赞
Exception
**程序本身存在问题
当程序通过throw 抛出问题时,表示这个程序本身存在问题,要么捕获,要么声明。(自己处理或者声明让调用者知道。)
RuntimeException(数组角标越界异常)
**不是功能本身存在问题,而是调用者传递参数等发生错误,导致运行失败。
内部有throw 抛出的异常,当传入 的参数或操作错误等,会发生异常,导致程序停止。这些异常都是运行时异常。
声明是为了让调用者进行处理。
不声明为了不让调用者处理,只是让程序停止运行,让调用者看到现象,去修改代码。
--->声明:面包贴标签;不声明:暴漏出来坏的内容,让调用者修改
总结:
编译时异常: 继承Exception 在可能出现问题的A方法中throw抛出异常,然后通过throws声明,这个类型的异常。
如果在调用A的地方没有处理能力继续声明,然后等待下一个调用者处理。
运行时异常:继承RuntimeException,不需要声明。
自定义异常A:
注意点:
1.继承一个Throwable的子类一般是Exception 或者RuntimeException
2.异常构造函数中,要通过super()继承父类的方法
3.当方法B中有可能发生自定义异常A时,要在B方法上声明异常A
|
|