Day07-异常机制

异常机制

Day07-异常机制

 

 

1.什么是异常:

Day07-异常机制

 

 

异常的分类:

Day07-异常机制

 

 

package com.sj.exception;

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

}


Exception in thread "main" java.lang.ArithmeticException: / by zero
at com.sj.exception.Demo01.main(Demo01.java:5)

Process finished with exit code 1

 

2.异常体系结构:

Day07-异常机制

 

Error:

Day07-异常机制

 

Exception:

Day07-异常机制

 

 

 

3.Java异常处理机制:

Day07-异常机制

 

 

4.处理异常:

package com.sj.exception;

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

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

       //finally 可以不要finally, 假设IO流,资源,关闭

  }

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



/*
       //假设要捕获多个异常:   从小到大!


       try{ //try监控区域
           //new Test().a();

           if (b==0){// throw   throws
               throw new ArithmeticException();//主动抛出异常
           }
           System.out.println(a/b);



       }catch (Error e){ //catch(想要捕获的异常类型!) 捕获异常
           System.out.println("程序出现异常,变量b不能为0");
       }catch (Exception e){
           System.out.println("Exception");
       }catch (Throwable e){
           System.out.println("Throwable");
       }finally { //处理善后工作
           System.out.println("finally");
       }
       */


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

    */

 

package com.sj.exception;

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

       //command + option + T(mac)
       //ctrl + alt + t(win)
       try {
           System.out.println(a/b);
      } catch (Exception e) {
           //System.exit(1);   主动结束程序
           e.printStackTrace();//打印错误的栈信息
      } finally {
      }
  }
}

 

 

5.自定义异常:

Day07-异常机制

 

 

package com.sj.exception.demo02;

//自定义的异常类
public class MyException extends Exception{

   //传递数字>10;
   private int detail;

   public MyException(int a) {
       this.detail = a;
  }

   //toString:异常的打印信息
   @Override
   public String toString() {
       return "MyException{" +
               "detail=" + detail +
               '}';
  }
}

 

package com.sj.exception.demo02;

public class Test {

   //可能会存在异常的方法
   static void test(int a) throws MyException {

       System.out.println("传递的参数为:"+ a);

       if(a >10){
           throw new MyException(a);  //抛出
      }

       System.out.println("OK");
  }

   public static void main(String[] args) {
       try {
           test(11);
      } catch (MyException e) {
           //增加一些处理异常的代码块~
           System.out.println("Myexception=>"+e);
      }
  }

}

 

 

6.总结:

Day07-异常机制

 

 

上一篇:vue项目移动一下位置npm run dev 就报错(新手进)


下一篇:Bliss OS 12.1下载 PC上Android10体验