10.0 疯狂java讲义4 第10章 前言

本章要点

  • 异常的定义和概念
  • Java异常机制的优势
  • 使用try...catch捕获异常
  • 多异常捕获
  • Java异常类的继承体系
  • 异常对象的常用方法
  • finally块的作用
  • 自动关闭资源的try语句
  • 异常处理的合理嵌套
  • Checked异常和Runtime异常
  • 使用throws声明异常
  • 使用throw抛出异常
  • 自定义异常
  • 异常链和异常转译
  • 异常的跟踪栈信息
  • 异常的处理规则

10.0 疯狂java讲义4 第10章 前言

异常机制已经成为判断一门编程语言是否成熟的标准,除传统的像C语言没有提供异常机制之外目前主流的编程语言如JavaC#RubyPython等都提供了成熟的异常机制。异常机制可以使程序中的异常处理代码正常业务代码分离,保证程序代码更加优雅,并可以提高程序的健壮性。

java异常处理用到的关键字

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

Java7异常处理增强

Java7进一步增强了异常处理机制的功能,包括带资源的try语句、**捕获多异常的catch**两个新功能,这两个功能可以极好地简化异常处理

Java异常分类

开发者都希望所有的错误都能在编译阶段被发现,就是在试图运行程序之前排除所有错误,但这是不现实的,余下的问题必须在运行期间得到解决。**Java将异常分为两种,Checked异常和Runtime异常**,
Java认为Checked异常都是可以在编译阶段被处理的异常,所以:

  • Checked异常需要程序显示处理;
  • Runtime异常则无须处理

Checked异常可以提醒程序员需要处理所有可能发生的异常,但Checked异常也给编程带来一些烦琐之处,所以Checked异常也是Java领域一个备受争论的话题