让程序变得健壮,可以维护性变高.
异常处理原则;谁调用谁处理
异常处理不是修复异常,而是将错误抛出到日志或控制台
try;把有可能出现错误的代码写在里面
finally一定会执行,但虚拟机被关闭不会执行
throw抛出一个具体异常
throws标识函数可能抛出的异常
runtimeException运算时异常可以不用处理
自定义异常,子类在重写父类方法时,抛出地异常不能放大,如果父类抛出多个异常,那么覆写
方法必须抛出那些异常的一个子集,不能抛出新的异常
class JavaDemo44
{
public static void main(String[] args)
{
/*
//System.out.println("Hello World!");
try{
//把有可能出现错误的代码写在这里
int i = 2/0;
}catch(Exception e){
System.out.println(e);
}finally{
//一定会执行,但是虚拟机被关闭不会执行
System.exit(0);//关闭虚拟机
System.out.println("tttt");
}
System.out.println("aaaaa");
*/
TestDemo2 td = new TestDemo2();
try{
td.test();
}catch(Exception e){
e.printStackTrace();
}
System.out.println("aaaaaaa");
td.test2();
td.test3();
}
}
class TestDemo2
{
public void test2() {
try{
this.test();
}catch(Exception e){
System.out.println(e);
}
}
//throw(抛出一个具体的异常)、throws(标识函数有可能抛出的异常)
public void test() throws Exception{
throw new NullPointerException();
}
public void test3(){
throw new RuntimeException();
}
}