在运行时发生的错误就称为“异常”,在运行时跟踪这些异常被称为“异常处理”。
try :监控异常的程序语句包含在 try 块中。
catch :程序员可以捕获异常并以某种合理的方式来处理它。
throw :直接抛出异常。
throws :子句用于在方法声明中抛出异常。
finally :可以指定在程序结束之前必须执行的代码,也就是说无论是否发生异常, finally 块中的代码都将会被执行。
try {
// 被监控的代码;
}catch{
// 处理异常及打印出生成异常的原因。
} catch{
// 处理异常及打印出生成异常的原因。
}finally{
无论 try/catch 块内发生了什么,无论是否已引发异常, finally 块都将在运行时执行。
finally 子句通常用于系统资源的清理 / 释放,如关闭文件、关闭数据库连接等。
}
try 块 |
catch 块 |
finally 块 |
无异常 |
异常类的层次结构。
Object |
Throwable |
Error |
Exception |
AWTError |
ThreadDeath |
RuntimeException |
ArithmeticException |
ClassNotFoundException |
SQLException |
NullPointerException |
异常类的方法
printStackTrace() : 是再 Exception 类中定义的方法,用于显示有关异常的信息。它包含的信息不仅波及异常的原因,还波及产生该异常的代码行。
getMessage(): 是在 RuntimeException 类中定义的方法,用于获得与异常相关的详细信息。
getStackTrace(): 方法提供通过程序对 printStackTrace() 输出的堆栈帧。
如果原因不存在或未知, getCause ()方法将返回错误或 null 的原因。
throw :例:
try{
throw NullPointerException ee=new NullPointerException();
}catch (NullPointerException e){
System.out.println(“ 已捕获内部 throwException”);
Throw e;
}