异常


异常

异常概念

Exception

  • 检查性异常

  • 运行时异常

  • 错误ERROR

异常体系结构

Java把异常当作对象来处理

Java异常处理机制

抛出异常

捕获异常

try、catch、finally、throw、throws

处理异常

package com.exception;
?
public class Test {
   public static void main(String[] args) {
?
       try {
           new Test().test(1,0);
      } catch (ArithmeticException e) {
           e.printStackTrace();
      }
?
?
/*       //假设要捕获多个异常,从小到大
       try {//try监控区域
           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 {//处理善后工作 IO,资源,关闭
           System.out.println("finally");
       }
*/
?
  }
   //假设这方法中,处理不了这个异常。方法上抛出异常
   public void test(int a,int b) throws ArithmeticException{
       if(b==0){
           throw new ArithmeticException();//主动抛出异常,一般在方法中使用
      }
?
?
  }
}
package com.exception;
?
public class Test2 {
   public static void main(String[] args) {
       int a = 1;
       int b = 0;
?
       //ctrl+alt+t
       try {
           System.out.println(a/b);
      } catch (Exception e) {
?
           e.printStackTrace();//打印错误栈信息
?
      } finally {
      }
  }
}

自定义异常

package com.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);
      }
  }
?
}
?
/*package com.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 + '}';
   }
}
*/



相关