异常
程序执行过程中出现异常。异常会导致程序异常终止。
异常处理是处理运行时错误以保持正常应用程序流的强大机制。
异常发生的原因有很多,通常包含以下几大类:
- 用户输入了非法数据。
- 要打开的文件不存在。
- 网络通信时连接中断,或者JVM内存溢出。
提示:如你所见,这些异常有的是因为用户错误引起,有的是程序错误或物理错误引起的。但是,一个写得好的程序应该处理所有可能的异常情况。
异常处理
使用 try 和 catch 关键字可以捕获异常。
try/catch 代码块放在异常可能发生的地方。try/catch 代码块中的代码称为保护代码。
使用 try/catch 的语法如下:
try {
//程序代码
} catch(Exception e) {
//Catch 块
}
Catch 语句包含要捕获异常类型的声明。当 try 块中发生一个异常时,try 后面的 catch 块就会被检查。如果发生的异常包含在 catch 块中,异常会被传递到该 catch 块,这和传递一个参数到方法是一样。
Exception 类型可以用来捕获所有可能的异常。
下面的例子中,说明了当尝试访问一个不存在的数组索引时的异常处理:
public class ExcepTest{
public static void main(String[] args) {
try {
int a[] = new int[2];
System.out.println(a[3]);
} catch (Exception e) {
System.out.println("An error occurred");
}
}
}
//输出 "An error occurred"
没有 try/catch 块,这段代码会导致程序崩溃,因为[3]不存在。
注意:catch 块中的(Exception e)语句,它用于捕获所有可能的异常。