//自定义异常类
public class MyException extends Exception { //继承异常类Exception
private int number;
public MyException(int a){
this.number = a;
}
@Override
public String toString(){
return "MyException{"+this.number+"}";
}
}
public class test01 {
static void test(int a) throws MyException {//throws 与 throw的区别:两个配合实现抛异常,但是一个作用在方法上,一个在具体的异常类上面。
if(a>10){
throw new MyException(a);
}
System.out.println("ok");
}
// public static void main(String[] args) throws Exception {//补充一个知识:在这里继续上抛线程,这里的“throws Exception” 异常类范围一定要大于或者等于“static void test(int a) throws MyException”的MyException类
// test(11);
// }
public static void main(String[] args){
try {
test(11);//此时,要么继续上抛异常,要么捕获处理。
} catch (MyException e) {
System.out.println(e.toString());//这里大家注意 e.getMessage() 输出是null
}
}
}
//输出
MyException{11}
总结:
1.在多重catch块后面,可以加一个catch(Exception)来处理可能被遗漏的异常
2.尽量添加finally语句去释放占用的资源
3.在多重catch块的时候,异常类范围小的在上面,如:catch(Exception)应该放在catch (MyException e)下面,不然会报错