在千鋒學習的第27天
努力努力在努力,堅持堅持再堅持!!!加油
今天我學習了異常的方法重寫,自定義異常
package ques5;
public class Test5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
//已檢查異常
class MyException1 extends Exception{
public MyException1(){}
public MyException1(String message){
super(message);
}
}
//運行時異常
class MyException2 extends RuntimeException{
public MyException2(){}
public MyException2(String message){
super(message);
}
}
package ques5;
public class Test5 {
public static void main(String[] args) {
int n=2 ;
try{
m(n);
}catch(MyException1 ex1){
System.out.println(ex1.getMessage());
ex1.printStackTrace();
}catch(MyException2 ex2){
System.out.println(ex2.getMessage());
throw ex2;
}
}
public static void m(int n) throws MyException1{
if(n == 1){
throw new MyException1("n == 1");
}else{
throw new MyException2("n==2");
}
}
}
//已檢查異常
class MyException1 extends Exception{
public MyException1(){}
public MyException1(String message){
super(message);
}
}
//運行時異常
class MyException2 extends RuntimeException{
public MyException2(){}
public MyException2(String message){
super(message);
}
}
1出填寫AB 2出填寫D
異常聲明方法重寫,子類方法的異常聲明類型必須要和父類方法異常聲明類型一致或者其子類,如果父類或實現的接口中方法沒有聲明異常,子類或實現類重寫的方法也不能有任何異常聲明,子類方法可以聲明多個異常(符合前面規定的)中間用逗號隔開就可以
不能,MySub2種方法的聲明類型不是父類中的聲明異常類型子類,把聲明的類型改成其本身,或者其子類就可