java 学习异常处理

学习心得:

try…catch

try捕获代码块中出现的异常,每当异常出现时会在程序中产生一个异常类的实例化对象,捕获的就是这个对象。
catch对try中出现的异常对象进行处理
若后面没有finally作为程序的出口,则catch处理完异常后,会回到try语句中继续执行后面的语句,若有finally则执行finally中的代码,且无论是否有异常都将执行这块代码

Exception

是throwable的子类,是所有异常的父类。
根据一场以上的特性,我们可以知道在catch语句中,我们可以通过Exception这个父类来接收所有的异常,但要注意,这是当程序出现任何异常都统一处理的时候才用的,若要处理特殊的异常,则必须将特殊的异常放在父类异常的前面。
throwable有两个子类一个是Exception,一个是Error。

throws关键字

在定义一个方法的时候通过throws声明这个方法可能抛出的异常,若出现异常则会抛给调用处处理,而不在此方法中处理,着重理解throws(抛出)的意思,意味着抛给别人处理。
注意:在方法中出现异常后会退出这个方法,且调用处必须有处理异常的操作,不然程序无法编译
思考:
若住方法也用throws关键字声明呢?
抛给JVM虚拟机处理

throw关键字

在程序中使用throw直接抛出一个异常
throw new Exception("");
所有异常捕获方法联合使用的例子:
这个程序必须要打印出计算结束字段,但要抛给住方法处理异常。
在这里插入图片描述

Exception与RuntimeException的区别

这里用一张图片来说明区别:

在这里插入图片描述
简而言之,RuntimeException类的异常会直接交给JVM处理。
自定义异常类

自己创建一个继承自Exception的类即可
assert

断言不会影响程序的执行,当断言错误的时候抛出提示信息
int x= new Int(3);
例如 assert x.length==0 :“数组长度不为0”
断言错误,运行时会抛出提示信息。
PS: 图片来自于mldn李兴华java视频教程,仅用于学习交流。

猜你喜欢

转载自blog.csdn.net/weixin_43157199/article/details/82924976