异常机制概述

1 异常机制关键字

        Java异常机制主要依赖于try、catch、finally、throws与throw五个关键字。

  • try关键字后紧跟一个花括号括起来(花括号不可省略),简称try块,它里面放置可能引起异常的代码。
  • catch后对应一个异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块。
  • finally块在多个catch块后,finally块用于回收try块里的物理资源,异常机制会保证finally块总被执行。
  • throws关键字主要在方法签名中使用,用于声明该方法可能抛出异常。
  • throw可以单独作为语句使用,抛出一个具体的异常对象。

2 Checked异常和Runtime异常的区别

        Java将异常分为两类:Checked异常和Runtime异常,Java异常认为Checked异常都是可以在编译阶段被处理的异常,所以它强制程序处理所有的Checked异常,而Runtime异常则无需处理。

3 Java异常捕获流程示意图
 

  •  当Java运行时环境收到异常对象时,会依次判断该异常对象是否是catch块后异常类或子类的实例,如果是,Java运行环境将调用该catch块来处理异常;否则再拿该异常和下一个catch块里的异常进行比较
  • 当程序进入负责异常处理的catch块时,系统生成的异常对象ex将会传给catch块后的异常形参,从而允许catch块通过该对象来获得异常详细信息。
  • try块后可以有多个catch块,这是为了针对不同的异常类提供不同异常处理方式,当系统发生不同的意外情况,系统会生成不同的异常对象,Java运行时会根据该异常所属的异常类来决定使用哪个catch块来处理该异常。
  • 在通常情况下,如果try块被执行一次,则try块后只有一个catch块会被执行,绝不可能有多个catch块执行。除非在循环中使用了continue开始下一次循环,下一次又重新运行了try块,这才可能导致多个catch块被执行

     
1 异常机制关键字         Java异常机制主要依赖于try、catch、finally、throws与throw五个关键字。
  • try关键字后紧跟一个花括号括起来(花括号不可省略),简称try块,它里面放置可能引起异常的代码。
  • catch后对应一个异常类型和一个代码块,用于表明该catch块用于处理这种类型的代码块。
  • finally块在多个catch块后,finally块用于回收try块里的物理资源,异常机制会保证finally块总被执行。
  • throws关键字主要在方法签名中使用,用于声明该方法可能抛出异常。
  • throw可以单独作为语句使用,抛出一个具体的异常对象。

猜你喜欢

转载自cakin24.iteye.com/blog/2324951