java.lang.Throwable
异常处理机制:
抛出异常
捕获异常
异常处理的五个关键词: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) { throw new RuntimeException(e); } finally { } } //假设这个方法中,处理不了这个异常,方法上抛出异常 public void test(int a,int b) throws ArithmeticException{ if (b == 0) { //主动抛出异常throw throws,一般在方法中使用 throw new ArithmeticException(); } } } /* //假设捕获多个异常:从小到大 try { if(b==0){ //主动抛出异常throw throws throw new ArithmeticException(); } //监控区域 System.out.println(a/b); }catch (Error e){//捕获异常 System.out.println("Error"); }catch (Exception n) { System.out.println("Exception"); }catch (Throwable d) { System.out.println("Throwable"); } finally{ } {//处理善后工作 一定会执行 System.out.println("fianlly"); } try { //监控区域 new Test().a(); }catch (Throwable e){//捕获异常(想要捕获的异常类型 Throwable是最高的类型) System.out.println("程序出现异常,变量b不能为0"); }finally {//处理善后工作 一定会执行 System.out.println("fianlly"); } //finally 可以不要finally 假设 IO,资源 得关闭 时 需要finally } public void a(){ b(); } public void b(){ a(); } */ /* 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) { throw new RuntimeException(e); } 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) throws MyException { try { test(11); } catch (MyException e) { System.out.println("MyException=>"+e); } finally { } } } /* 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 + '}'; } } */
原创文章,作者:sunnyman218,如若转载,请注明出处:https://blog.ytso.com/278067.html