java错误抛出时间顺序
java异常抛出时间顺序
执行结果:
com.ahuier.exception.MyException: 传入的字符串参数不能为null
at com.ahuier.exception.ExceptionTest5.method(ExceptionTest5.java:6)
at com.ahuier.exception.ExceptionTest5.main(ExceptionTest5.java:22)
异常处理完毕
程序执行完毕
1、当前方法抛出异常时(交给java虚拟机执行异常处理)
public class ExceptionTest5 { public void method(String str) throws MyException{ if(str == null){ throw new MyException("传入的字符串参数不能为null"); } else{ System.out.println(str); } } /* * 根据多态,也可以抛出 Exception类型的异常: * 1) throws Exception * 2) 捕获也可以这样写 catch(Exception e) */ public static void main(String[] args) throws MyException{ try{ ExceptionTest5 test = new ExceptionTest5(); test.method(null); }catch(MyException e){ e.printStackTrace(); } finally{ System.out.println("异常处理完毕"); } System.out.println("程序执行完毕"); } }
执行结果为:
异常处理完毕
程序执行完毕
com.ahuier.exception.MyException: 传入的字符串参数不能为null at com.ahuier.exception.ExceptionTest5.method(ExceptionTest5.java:6) at com.ahuier.exception.ExceptionTest5.main(ExceptionTest5.java:22)
2、当前方法不抛出异常
public class ExceptionTest5 { public void method(String str) throws MyException{ if(str == null){ throw new MyException("传入的字符串参数不能为null"); } else{ System.out.println(str); } } /* * 根据多态,也可以抛出 Exception类型的异常: * 1) throws Exception * 2) 捕获也可以这样写 catch(Exception e) */ public static void main(String[] args) { try{ ExceptionTest5 test = new ExceptionTest5(); test.method(null); }catch(MyException e){ e.printStackTrace(); } finally{ System.out.println("异常处理完毕"); } System.out.println("程序执行完毕"); } }
执行结果:
com.ahuier.exception.MyException: 传入的字符串参数不能为null
at com.ahuier.exception.ExceptionTest5.method(ExceptionTest5.java:6)
at com.ahuier.exception.ExceptionTest5.main(ExceptionTest5.java:22)
异常处理完毕
程序执行完毕