异常的处理方式
方式一:捕获异常(try-catch-finally)
捕获异常是通过三个关键词来实现的:try-catch-finally。用try来执行一段程序,如果出现异常,系统抛出一个异常,可以通过它的类型来捕捉(catch)并处理它,最后一步是通过finally语句为异常处理提供一个统一的出口,finally指定的代码都要被执行(catch语句可以有多条;finally语句最多只能有一条,根据自己的需要可有可无)。
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
/**
* @author xiaofei 异常处理经典代码try-catch-finally
*/
public class Exception {
public static void main(String[] args) {
FileReader reader = null;
try {
// 读取E盘下的a.txt文件
reader = new FileReader("e:/a.txt");
char c = (char) reader.read();
System.out.println(c);
// 多个catch,子类在前,父类在后
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {// 关闭资源
try {
if (reader != null) {// 避免空指针异常
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}// main
}
方式二:声明异常(throws子句)
import java.io.FileReader;
import java.io.IOException;
/**
* @author xiaofei 异常处理经典代码try-catch-finally
*/
public class Exception {
public static void main(String[] args) throws IOException {
FileReader reader = null;
// 读取E盘下的a.txt文件
reader = new FileReader("e:/a.txt");
char c = (char) reader.read();
System.out.println(c);
// 关闭资源
if (reader != null) {// 避免空指针异常
reader.close();
}
}// main
}
使用异常机制的建议
- 要避免使用异常处理代替错误处理,这样会降低程序的清晰性,并且效率低下。
- 处理异常不可以代替简单测试--只是在异常情况下使用异常机制。
- 不要小粒度的异常处理--应该将整个任务包装在一个try语句块中。
- 异常往往在高层处理。