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