第10章 异常处理
本章要点
- 异常的定义和概念
Java
异常机制的优势- 使用
try...catch
捕获异常 - 多异常捕获
Java
异常类的继承体系- 异常对象的常用方法
finally
块的作用- 自动关闭资源的
try
语句 - 异常处理的合理嵌套
Checked
异常和Runtime
异常- 使用
throws
声明异常 - 使用
throw
抛出异常 - 自定义异常
- 异常链和异常转译
- 异常的跟踪栈信息
- 异常的处理规则
异常机制己经成为判断一门编程语言是否成熟的标准,除了传统的像C语言
没有提供异常机制之外,目前主流的编程语言如Java
、C#
、Ruby
、 Python
等都提供了成熟的异常机制。
异常的作用
异常机制可以使程序中的异常处理代码和正常业务代码分离
,保证程序代码更加优雅,并可以提高程序的健壮性
异常机制相关的五个关键字
Java
的异常机制主要依赖于try
、 catch
、 finally
, throw
和throws
五个关键字,这五个关键字的用途如下:
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章 异常处理