Java异常

Java异常体系总结

1.Error和Exception的区别:

Error:一般指的是程序无法处理的系统错误,编译器不做检查。例如:系统崩溃、JVM相关异常、内存不足。是需要JVM承担的风险。
Exception:一般指程序可以处理的异常,捕获后可能会恢复
总结:前者是程序无法处理的错误,后者是可以处理的异常。

2.对于Exception有两个子类:

分别是RuntimeException和非RuntimeException
RuntimeException:
运行时异常,例如数组下标越界,访问到空指针等情况。一般是不可预知的,可以自行避免。
非RuntimeException:
非运行时异常,可以预知的,否则编译时期就无法通过。Java编译器应该对其负责。

3.常见的Error和Exception:

RuntimeException:
1.NullPointerException:空指针异常,一般指调用了空对象的方法和属性等操作。
2.ClassCastException:类型强制转换异常。
3.IllegalArgumentException:传递非法参数异常。
4.IndexOutOfBoundsException:下标越界异常。
5.NumberFormatException:数字格式异常。例如一般算法题都会出现将某字符串“E123”转为123的非法转换。

非RuntimeException:
1.ClassNotFoundException:找不到指定的Class的异常。
2.IOException:IO操作异常。

Error:
1.NoClassDefFoundError:找不到class定义的异常。
2.StackOverFlowError:深递归导致栈被耗尽而抛出了异常。
3.OutOfMemoryError:内存溢出异常。

4.Java异常的处理机制:

1.抛出异常:创建异常对象,交由运行时系统处理。
2.捕获异常:寻找合适的异常处理器处理异常,否则终止运行。

5.try-catch中的return语句和finally的执行顺序:

try是将需要检查异常的代码放进去,catch是捕获异常,如果catch中有return语句,那么先于return语句之前先去执行finally中的语句,如果finally中也有return语句,那么无需再去执行catch中的return返回语句。

6.Java异常处理的原则:

具体明确:抛出的异常通过在控制台和抛出的异常消息来准确说明异常类型。
尽早提出:早发现早提出。
延迟捕获:处理异常延迟一些,让拥有更多信息的作用域来处理异常。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值