0%

第10章 异常处理

第10章 异常处理

本章要点

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

异常机制己经成为判断一门编程语言是否成熟的标准,除了传统的像C语言没有提供异常机制之外,目前主流的编程语言如JavaC#RubyPython等都提供了成熟的异常机制。

异常的作用

异常机制可以使程序中的异常处理代码和正常业务代码分离,保证程序代码更加优雅,并可以提高程序的健壮性

异常机制相关的五个关键字

Java的异常机制主要依赖于trycatchfinally, throwthrows五个关键字,这五个关键字的用途如下:

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

Java 7增强的异常处理机制功能

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

Java异常分类

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

Checked异常需要处理Runtime异常不需要处理

  • Java认为Checked异常都是可以在编译阶段被处理的异常,程序员要处理Checked异常;
  • Runtime异常则无须处理。

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

原文链接: 第10章 异常处理