异常02-捕获和抛出异常

异常处理机制

  • 抛出异常
  • 捕获异常
  • 异常处理的5个关键字:
    • try、catch、finally、throw(方法内,手动抛出异常)、throws(方法抛出异常)
package com.exception.demo01;

public class Demo01 {
    public static void main(String[] args) {
        //new Demo01().a();
        System.out.println(11/0);
    }

    /*
    public void a(){
        b();
    }

    public void b(){
        a();
    }

     */
}

package com.exception.demo01;

public class Test {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        //try catch 一般要一起使用
        try{//try 监控区域
            System.out.println(a/b);
        }catch(ArithmeticException e){//catch(想要捕获的异常类型) 捕获异常
            System.out.println("程序出现异常,变量b不能为0");
        }finally{//finally 处理善后工作,无论有无异常,最后都会被执行
            System.out.println("finally");
        }
        //finally{} 部分可以不用; 可用于: 假设IO,资源,关闭
    }

}


package com.exception.demo01;

public class Test2 {
    public static void main(String[] args) {
        new Test2().test(1,0);
    }
    //假设这个方法中,处理不了这个异常。方法上抛出异常
    public void test(int a,int b) throws ArithmeticException{
        if(b==0){
            throw new ArithmeticException(); //主动地抛出异常,一般在方法中使用
        }

    }

}


/*
 int a = 1;
 int b = 0;
 //假设要捕获异常:要从小到大!
        //try catch 一般要一起使用
  try{//try 监控区域
            //new Test2().a();
            System.out.println(a/b);
        }catch(Error e){//catch(想要捕获的异常类型) 捕获异常
            System.out.println("Error");
        }catch(Exception e){
            System.out.println("Exception");
        }catch(Throwable e){
            System.out.println("Throwable");
        }finally{//finally 处理善后工作,无论有无异常,最后都会被执行
            System.out.println("finally");
        }
        //finally{} 部分可以不用; 可用于: 假设IO,资源,关闭


          /*
    public void a(){b();}
    public void b(){a();}

 */


package com.exception.demo01;

public class Test3 {
    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        //Ctrl + Alt + T 自动生成
        try {
            System.out.println(a/b);
        } catch (Exception e) {
            throw new RuntimeException(e);
        } finally {
        }
    }
}

posted @ 2023-02-20 09:13  TangoVer  阅读(21)  评论(0编辑  收藏  举报