Exception和Error有什么区别?

JAVA面试

Exception和Error有什么区别?

JAVA异常体系

在java中只有Throwable类型的实例才可以被throw或者catch,它是异常处理的基本组成类型。

  • Exception

    程序正常运行中,可以预料的意外情况,可能并且应该被捕获,并且进行相应的处理

  • Error

    在正常情况下,不太可能出现的情况,绝大部分的Error都会导致程序处于非正常的不可恢复的状态下。

检查异常(checked exception)和未检查异常(unchecked exception)

ErrorRuntimeException及其子类成为未检查异常(unchecked),其它异常成为已检查异常(checked)。

NoClassDefFoundError 和 ClassNotFoundException 有什么区别

  • ClassNotFoundException

    当动态的加载Class的时候找不到类时会抛出异常,属于Exception类。主要发生在使用Class.forName()、ClassLoader.loadClass() 或 ClassLoader.findSystemClass()来加载类的时候。

  • NoClassDefFoundError

    当编译成功,执行过程中Class找不到类导致抛出该错误,由JVM的运行时系统抛出

异常处理

异常处理的关键字:try、catch、finally、throw、throws

  • try-catch-finally

    遇到异常直接进行catch,然后执行finally

    try{
      ///可能会抛出异常的代码`
    }catch(Type1 id1){
      //处理Type1类型异常的代码`
    }catch(Type2 id2){
      //处理Type2类型异常的代码`
    }finally{
    	// 回收资源
    }
    
  • throw

    手动抛出异常

    throw new Exception()
    
  • throws

    用于方法签名中

    public void f() throws ClassNotFoundException,IOException{}
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值