Java异常处理机制可以让程序具有极好的容错性,让程序运行更加健壮。当程序运行出现意外情形时,系统会自动生成一个 Exception对象来通知程序,从而实现将“业务功能实现代码”和“错误处理代码”分离,提供更好的可读性
几个常见的异常:IndexOutOfBoundsException 数组越界
NumberFormatException 数字转换异常
ArithmeticException 计算异常(经常出现除以0异常)
一、使用try…catch捕获异常
Java异常处理机制:抛出异常,捕捉异常,处理异常。
try {
} catch (Exception e) {
// TODO: handle exception
}
Exception是一个根异常
在使用try…catch捕获处理异常时需要注意:
- 不要过度使用异常,不能使用异常处理机制来代替正常的流程控制语句
- 异常捕获时,一定要先捕获小异常,再捕获大异常。否则小异常将无法被捕获
- 避免出现庞大的try块 4. 避免使用catch(Exception e){}
- 不要忽略异常
Exception类的常用方法
(1)、fillInStackTrace()在异常堆栈跟踪中填充 //异常类:异常消息 **
(2)、getCause()返回 cause 不存在或未知,则返回 null
(3)、getMessage()返回详细消息字符串 //异常消息 **
(5)、getLocalizedMessage()创建本地化描述
(6)、getStackTrace()提供编程访问由printStackTrace() 输出的堆栈跟踪信息
(7※)、printStackTrace()将及其追踪输出至标准错误流
Java7 多异常捕获
在使用一个catch块捕获多种类型的异常时需要注意:
(1)、捕获多种类型的异常时,多种异常类型之间用竖线(|)
(2)、捕获多种类型的异常时,异常变量有隐式的 final 修饰,因此程序不能对异常变量重新赋值
扩展 回忆 final 的知识点:
final 修饰类 不能被继承
final 修饰变量 只能初始化一次
final 修饰静态成员变量
final 修饰方法 不能被重写