图片来源
public class Demo01 { public static void main(String[] args) { int a =1; int b=0; //假设要捕获多个异常:从小到大,从上到下 try { //try监控区域 if(b==0){ //throw throws throw new ArithmeticException();//主动的抛出异常 } System.out.println(a/b); }catch (Error e){//catch(想要捕获的异常类型 ) 捕获异常 System.out.println("Error"); }catch (Exception e){ System.out.println("Exception"); }catch(Throwable t){ System.out.println("Throwable"); }finally {//处理善后工作 (可以不要finally) System.out.println("finally"); } } } /* Exception finally*/
public class Demo01 { public static void main(String[] args) { try { new Demo01().test(1,0); } catch (ArithmeticException e) { e.printStackTrace(); } finally { } } //假设中方法中,处理不了这个异常。方法上抛出异常 public void test(int a,int b)/*throws ArithmeticException*/{ if(b==0){ //throw throws throw new ArithmeticException(); //主动的抛出异常,一般在方法中使用 } System.out.println(a/b); } }
//自定义异常类 public class MyException extends Exception{ private int detail; public MyException(int a) { this.detail = a; } //toString:异常的打印信息 @Override public String toString() { return "MyException{" + detail + '}'; } }
public class Test { //可能存在异常的方法 static void test(int a) throws MyException { System.out.println("传递的参数为:" + a); if (a > 10) { throw new MyException(a); //抛出 /*try { throw new MyException(a); //抛出 } catch (MyException e) { e.printStackTrace(); } finally { }*/ } System.out.println("ok"); } public static void main(String[] args) { try {//监控区域 test(11); } catch (MyException e) { //捕获异常 //增加一些处理异常的代码~ System.out.println("MyException-》"+e); } finally { } } }