运行时异常/编译时异常

异常体系:
------------------| Throwable 所有错误或者异常的父类
----------------------|Error  错误
----------------------|Exception 异常  异常一般都通过代码处理


------------------------------|运行时异常:如果一个方法内部抛出了一个运行时异常,那么方法上可以声明也可以不声明,调用者可以处理也可以不处理。
------------------------------|编译时异常(非运行时异常、受检异常):如果一个方法内部抛出了一个编译时异常对象,那么方法上就必须声明,而且调用者也必须要处理。

运行时异常:RuntimeException以及RuntimeException子类都是属于运行时异常。
编译时异常:除了运行时异常就是编译异常。

疑问: 为什么java编译器会如此严格要求编译时异常,对运行时异常如此宽松?

运行时异常都是可以通过程序员良好的编程习惯去避免,所以java编译器就没有严格要求处理运行时异常。
  1. import java.security.acl.*;
  2. class Demo4
  3. {
  4. public static void main(String[] args) throws InterruptedException
  5. {
  6. int[] arr = null;
  7. div(4,0,arr);
  8. Object o = new Object();
  9. o.wait();
  10. }
  11. public static void div(int a , int b ,int[] arr) {
  12. if(b==0){
  13. return;
  14. }
  15. int c = a/b;
  16. System.out.println("c = "+c);
  17. if(arr!=null){
  18. System.out.println("数组的长度: "+arr.length);
  19. }
  20. }
  21. }

运行时异常,可以处理也可以不处理:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值