Java异常类

Java异常处理流程:

(1)Java中可以处理的异常全部都是在程序运行中产生的异常,当程序运行到某行代码并且此代码执行出现异常时,会由JVM帮助用户去判断此异常的类型,并且自动进行指定类型的异常类对象实例化处理。

(2)如果此时程序中并没有提供异常处理的支持,,则会采用JVM默认异常处理方式,首先进行异常信息的打印;其次直接退出当前的程序。

(3)如果此时程序中存在异常处理,那么这个产生的异常类的实例化对象将会被try语句所捕获。

(4)try捕获到异常之后与其匹配的catch中的异常类型依次进行对比,如果此时与catch中的捕获异常类型相同,则认为应该使用此catch进行异常处理;如果不匹配则继续匹配后续的catch类型;如果没有任何的catch匹配成功,那么就表示该异常无法进行处理。

(5)不管异常是否进行处理最终都要执行finally语句,但是执行完成finally的程序后会进一步判断当前的异常是否已经处理了,如果处理过了,则继续向后执行其他代码;如果没有处理则交由JVM进行默认处理。

 

异常的格式组合:try...catch;   try...catch...finally;  try...finally

所有的异常都是使用Exception来进行处理。

面试题:为什么不用Throwable?

答:Throwable表示的范围比Exception大。

       实际上程序如果使用Throwable来进行处理,没有任何的语法问题,但却会存在逻辑问题。因为此时出现的(或者说用户能够处理的)只有Exception类型,而如果使用Throwable接收,那么还会表示可以处理Error的错误,而用户是处理不了Error错误的,所以在开发中用户可以处理的异常都要求使用Exception类为主。

 

throw与throws关键字有什么区别?

throw:是在代码块中使用的,主要是受到进行异常对象的输出。

throws:是在方法定义中使用,表示此方法中可能产生的异常明确告诉给调用处,由调用处进行处理。

 

RuntimeException和Exception的区别?

RuntimeException是Exception的子类。

Exception定义了必须处理的异常,而RuntimeException定义的异常可以选择性地处理。

常见的RuntimeException:NumberFormatException、ClassCastException、NullPointException、ArithmeticException、ArrayIndexOutOfBoundsException。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值