Java中的异常处理
2015-08-23 07:26
621 查看
描述:
如果Java中的函数有可能抛出异常,则该异常要么被catch住,要么在声明函数时必须声明该函数体会throws exception。
处理的时候的流程是,当发生异常时,首先结束当前函数后续语句的执行,接着查看这个异常有无catch语句处理,如果没有则上浮至调用者。如果调用者没处理,继续上浮,直到处理位置,或者一直没处理则得到一条运行时错误并终止。如果在某一层被处理了,从catch语句开始继续执行。
代码实现:
输出:
如果Java中的函数有可能抛出异常,则该异常要么被catch住,要么在声明函数时必须声明该函数体会throws exception。
处理的时候的流程是,当发生异常时,首先结束当前函数后续语句的执行,接着查看这个异常有无catch语句处理,如果没有则上浮至调用者。如果调用者没处理,继续上浮,直到处理位置,或者一直没处理则得到一条运行时错误并终止。如果在某一层被处理了,从catch语句开始继续执行。
代码实现:
package c04; import java.io.IOException; /** * @project: LearningJava * @filename: ExceptionTest.java * @version: 0.10 * @author: Jimmy Han * @date: 7:05 2015/8/23 * @comment: Test Purpose * @result: */ public class ExceptionTest { static void func1(){ System.out.println("enter func1"); try{ func2(); } catch(IOException e){ System.out.println("IOException handled in func1"); e.printStackTrace(System.err); } System.out.println("continue func1"); } static void func2() throws IOException{ System.out.println("enter func2"); func3(); System.out.println("continue func2"); } static void func3() throws IOException{ System.out.println("enter func3"); func4(); System.out.println("continue func3"); } static void func4() throws IOException{ System.out.println("enter func4"); throw new IOException(); //Never reach compile error //System.out.println("continue func4"); } static void func5(){ System.out.println("enter func5"); System.out.println("continue func5"); } public static void main(String[] args) { func1(); func5(); } }
输出:
java.io.IOException at c04.ExceptionTest.func4(ExceptionTest.java:38) at c04.ExceptionTest.func3(ExceptionTest.java:33) at c04.ExceptionTest.func2(ExceptionTest.java:28) at c04.ExceptionTest.func1(ExceptionTest.java:18) at c04.ExceptionTest.main(ExceptionTest.java:49) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) enter func1 enter func2 enter func3 enter func4 IOException handled in func1 continue func1 enter func5 continue func5
相关文章推荐
- JAVA自定义异常
- struts2 中文乱码解决办法
- Spring Auto proxy creator example
- Spring AOP Interceptor transaction is not working
- Spring AOP Example – Pointcut , Advisor
- JDBC的使用
- struts2 遍历标签iterator 用法小结
- Spring4.0学习(二)采用@Autowired方式自动获取
- eclipse debug source not fount
- SpringMVC原理流程图
- struts 2 用s 标签 输出 list 里的 map
- springboot 开发入门,及问题汇总
- ubuntu14.04lts如何使用PPA安装JDK8
- springboot 开发入门,及问题汇总
- springboot 开发入门,及问题汇总
- springboot 开发入门,及问题汇总
- 每天五个java相关面试题(8)--spring篇
- Java -- XML解析工具dom4j
- spring配置文件详解
- Java深入学习之--初始化