异常的分类:
Error——由java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理;
Exception——所有异常的父类,其子类对应了各种各样可能出现的益处事件,一般需要用户显示的声明或捕获;
Runtime Exception——一类特殊的异常,由系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)
Error——由java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理;
Exception——所有异常的父类,其子类对应了各种各样可能出现的益处事件,一般需要用户显示的声明或捕获;
Runtime Exception——一类特殊的异常,由系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)
import java.io.*;
public class TestEx {
public static void main(String[] args) {
try {
new TestEx().f2();
} catch (IOException e) {
e.printStackTrace();
}
/*
* int[] arr = {1, 2, 3}; System.out.println(arr[2]); try {
* System.out.println(2/0);
* } catch (ArithmeticException e) {
* System.out.println("系统正在维护,请与管理员联系");
* e.printStackTrace();
* }
*/
// TestEx te = new TestEx();
// te.m(0);
/*
* try {
* new TestEx().m(0);
* } catch (ArithmeticException ae) {
* ae.printStackTrace();
* System.out.println("出错了");
* }
*/
FileInputStream in = null;
try {
in = new FileInputStream("myfile.txt");
int b;
b = in.read();
while (b != -1) {
System.out.print((char) b);
b = in.read();
}
}catch(FileNotFoundException e){
e.printStackTrace();
}catch (IOException e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
finally {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
void m(int i) throws ArithmeticException {
if (i == 0)
throw new ArithmeticException("被除数为0");
}
void f() throws FileNotFoundException, IOException {
FileInputStream in = new FileInputStream("myfile.txt");
int b;
b = in.read();
while (b != -1) {
System.out.print((char) b);
b = in.read();
}
}
void f2() throws IOException {
/*
* try { f(); } catch (FileNotFoundException e) {
* System.out.println(e.getMessage()); } catch (IOException e) {
* e.printStackTrace(); }
*/
f();
}
}