Java面向对象:异常的捕获和抛出

异常的捕获和抛出

try、 catch、 finally、 throw、 throws

一、捕获异常

  • try {}:监控区域,需要监控异常的代码放在 try{} 里面

  • catch {}:捕获异常

  • finally {}:最后执行,也可以不要 finally {} 块,处理善后工作(假设开了IO,为节约资源,关闭IO)。

  • 假设捕获(catch{})多个异常,需要从小到(从子类异常到父类异常)一个一个捕获

  • 自动捕获异常快捷键 : 选中要监控异常的语句 Ctrl + Alt + T :try/catch/finally ...

  • 示例:

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

        int a = 1;
        int b = 0;

        //假设要捕获多个异常,从小到大(子类到父类),catch catch catch

        try { //try 监控区域
            System.out.println(a/b);
        }catch(Error c) { 					//catch 捕获异常
            System.out.println("Error");
        }catch(Exception d) {
            System.out.println("Exception");
            d.printStackTrace();
        }catch(Throwable e) {
            System.out.println("Throwable");
        }finally {  						//finally 最后执行,处理善后工作
            System.out.println("finally");
        }

    }
}

二、抛出异常

  • throw:主动抛出异常,throw 一般在方法中使用

  • throws:方法上抛出异常,假设这个方法中,处理不了这个异常,可以上升到方法上抛出,再由调用方法时的 try catch捕获处理异常。

public class Test2 {

    public static void main(String[] args) {

        try {
            new Test2().test(1,0);
        } catch (Exception e) {
            System.out.println("ssss");
        } finally {
            System.out.println("finally");
        }
    }

    //假设这个方法中,处理不了这个异常。方法上抛出异常:throws ArithmeticException
    public void test(int a,int b) throws ArithmeticException{
        if (b==0) {
            throw new ArithmeticException(); //主动抛出异常,throw 一般在方法中使用
        }else{
            System.out.println(a/b);
        }
    }

}
上一篇:这几种Java异常处理方法,你会吗?


下一篇:try-catch-finally的使用