异常处理

异常处理

基本介绍

  • 异常处理就是当异常发生时,对异常处理的方式

异常处理的方式

  • try - catch - finally 在代码中捕获的异常自行处理
  • throws 将发生的异常抛出,交给调用者(方法)来处理,最*的处理者就是JVM

try - catch异常处理

  1. 说明
    • Java提供try和catch块来处理异常,try块用于包含可能出错的代码,catch块用于处理try块中发生的异常,可以根据需要在程序中有多个try - catch块
  2. 基本语法
try{
    //代码可能有异常
}catch(Exception e){
    //捕获到异常
    //1.当异常发生时,系统将异常封装成Exception对象e,传递给catch
    //2.得到异常对象后自己处理
    //3,如果没有发生异常,catch代码块不执行
        
}finally{
    //不管try代码块是否有异常发生,始终要执行finally
    //所以,通常将释放资源的代码放在finally
}
  1. 注意事项
    • 如果异常发生了,则异常发生后面的代码不会执行,直接进入catch块
    • 如果异常没有发生,则顺序执行try的代码块,不会进入到catch
    • 如果希望不管是否发生异常,都执行某段代码(比如关闭连接,是否资源)则使用finally代码块
    • 可以有多个catch语句,捕获不同的异常(进行不同的业务处理),要求父类异常在后,子类异常在前,比如(Exception在后,NullpointerException在前),如果发生异常,只会匹配一个catch
    • 可以进行try - finally配合使用,这种方法相当于没有捕获异常,因此程序会直接崩掉/退出,就是执行一段代码,不管是否发生异常,都必须执行某个业务逻辑

throws异常处理

  • 如果一个方法中的语句执行时可能生成某种异常,但是并不能确定如何处理这种异常,则此方法应显示的声明抛出异常,声明该方法将不对这些异常进行处理,而由该方法的调用者负责处理
  • 在方法声明中用throws语句可以声明抛出异常的列表,throws后面的异常可以是方法中产生的异常类型,也可以是它的父类
注意事项
  1. 对于编译异常,程序中必须处理,比如try-catch 或者throws
  2. 对于运行时异常,程序中如果没有处理,默认就是throws方式处理
  3. 子类重写父类方法时,对抛出的异常的规定:子类重写的方法,所抛出的异常类型要么和父类抛出的异常一致,要么为父类抛出的异常类型的子类型
  4. 在throws过程中,如果有方法try-catch,就相当于处理异常,就可以不必throws

异常处理

上一篇:list链表


下一篇:自定义注解的理解和使用