异常机制
处理异常的两种方式:
1.throws上抛,丢给调用者来处理此异常
2.使用try catch语句来捕捉异常(main方法建议使用此语句,不建议上抛),且catch里面的异常类型可以为其父类型,但是不建议,因为不精准。写多个catch必须遵从“从小到大”,父类在后。
3.打印异常追踪信息用了异步的方式
4.finally中的语句,一定会执行!!!
5.throw用于手动抛出异常
package com.javastudy.example08;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
/*
处理异常的两种方式:
1.throws上抛,丢给调用者来处理此异常
2.使用try catch语句来捕捉异常(main方法建议使用此语句,不建议上抛),
且catch里面的异常类型可以为其父类型,但是不建议,因为不精准。
写多个catch必须遵从“从小到大”,父类在后。
3.打印异常追踪信息用了异步的方式
4.finally中的语句,一定会执行!!!
*/
public class ExpetionTest extends Exception{
public static void main(String[] args) throws WorkExprction {
System.out.println("main begin");
NullPointerException nuller=new NullPointerException("空指针异常");
String mes=nuller.getMessage();
System.out.println(mes);
//测试手动抛出异常
Regist regist1 = new Regist();
try
{
regist1.regist("12");
} catch (WorkExprction workExprction) {
workExprction.printStackTrace();
}
//测试捕捉异常
try {
m1();
System.out.println("程序有异常则不执行此句!");
} catch ( FileNotFoundException e) {
// e.printStackTrace();//打印异常追踪信息
System.out.println("程序有异常!");
}finally {
System.out.println("finally一定会执行!!");
}
/*
catch ( Exception e) { 写多个必须遵从“从小到大”,父类在后
// e.printStackTrace();
System.out.println("程序有异常!");
}
*/
System.out.println("main over");
}
private static void m1() throws FileNotFoundException {
System.out.println("m1 begin");
m2();
System.out.println("m1 over");
}
private static void m2() throws FileNotFoundException {
System.out.println("m2 begin");
new FileInputStream("C:\\22计算机考研-西南交通大学");
System.out.println("m2 over");
}
}
//定义异常
class WorkExprction extends Exception{
public WorkExprction() {
}
public WorkExprction(String s) {
super(s);
}
}
该程序运行结果