1. 程式人生 > 其它 >捕獲和丟擲異常

捕獲和丟擲異常

捕獲

public class Test {
   public static void main(String[] args) {

       int a = 1;
       int b = 0;

       try{
           System.out.println(a/b);
      }//try 監控區域
       
       catch(ArithmeticException e){//catch括號內的引數是 想要捕獲的異常型別
           System.out.println("程式出現異常,變數b不能為0");
      }//catch 捕獲異常,出現異常就執行catch裡面的語句
       
       finally{
           System.out.println("finally");
      }//finally 善後工作,無論有沒有異常都會執行

       
       //捕獲:try和catch必須要有,finally可以不要
  }
}
  • 假設要捕獲多個異常,catch可以寫多個,要從小到大!

    catch(Error e){
               System.out.println("Error");
          }
    catch(Exception e){
               System.out.println("Exception");
          }
    catch(Throwable e){
               System.out.println("Throwable");
          }
  • 快捷鍵:Ctrl + Alt + T

 

丟擲

public class Test {
   public static void main(String[] args) {

       new Test().test(1,0);
  }

   
   public void test(int a,int b){
       if(b==0){
           throw new ArithmeticException();//主動丟擲異常,一般在方法中使用
      }
       System.out.println(a/b);
  }

}
public class Test {
   public static void main(String[] args) {

       try {
           new Test().test(1,0);
      } catch (ArithmeticException e) {
           e.printStackTrace();
      }
  }

   //假設這個方法中,處理不了這個異常,在方法上丟擲異常
   public void test(int a,int b) throws ArithmeticException{
       if(b==0){
           throw new ArithmeticException();//主動丟擲異常,一般在方法中使用
      }
       System.out.println(a/b);
  }

}