java基础(十)--- 异常
2015-06-05 21:10
302 查看
异常分类图解:
Throwable
|--Error 严重问题,我们不处理。
|--Exception
|--RuntimeException 运行期异常,我们需要修正代码
|--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过
异常对象的常见方法:
如果程序需要在catch块中访问对象的相关信息,则可以通过访问catch块后的异常形参来获得。当java运行时决定调用某个catch块来处理该异常对象时,会将异常对象赋给catch块后的异常参数,程序即可通过该参数来获得异常相关信息。
getMessage():返回该异常的详细描述字符串
printStackTrace():将该异常的跟踪栈信息输出到标准错误输出。
printStackTrace(PrintStream s):将该异常的跟踪栈信息输出到标准错误输出。
getStackTrace():返回该异常的跟踪栈信息。
finally的特殊情况:
通常情况下,不要在finally块中使用如return或者throw等导致方法终止的语句。
当java程序执行try块、catch块时遇到了return或者throw语句。这两个语句都会导致该方法立即结束,但是系统执行这两个语句并不会结束该方法,而是去寻找该异常处理流程中是否包含finally块,如果没有finally块,程序立即执行return或throw语句,方法终止。如果有finally块,系统立即开始执行finaly块----只有当finally块执行完成后,系统才会再次跳回来执行try块、catch块里的retrun或throw语句;如果finally块里也使用了return或throw等导致方法终止的语句,finally块一斤终止了方法,系统将不会跳回去执行try块、catch块里的任何代码。
自定义异常
继承自Exception或者RuntimeException,只需要提供无参构造和一个带参构造即可
Throwable
|--Error 严重问题,我们不处理。
|--Exception
|--RuntimeException 运行期异常,我们需要修正代码
|--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过
异常对象的常见方法:
如果程序需要在catch块中访问对象的相关信息,则可以通过访问catch块后的异常形参来获得。当java运行时决定调用某个catch块来处理该异常对象时,会将异常对象赋给catch块后的异常参数,程序即可通过该参数来获得异常相关信息。
getMessage():返回该异常的详细描述字符串
printStackTrace():将该异常的跟踪栈信息输出到标准错误输出。
printStackTrace(PrintStream s):将该异常的跟踪栈信息输出到标准错误输出。
getStackTrace():返回该异常的跟踪栈信息。
finally的特殊情况:
通常情况下,不要在finally块中使用如return或者throw等导致方法终止的语句。
当java程序执行try块、catch块时遇到了return或者throw语句。这两个语句都会导致该方法立即结束,但是系统执行这两个语句并不会结束该方法,而是去寻找该异常处理流程中是否包含finally块,如果没有finally块,程序立即执行return或throw语句,方法终止。如果有finally块,系统立即开始执行finaly块----只有当finally块执行完成后,系统才会再次跳回来执行try块、catch块里的retrun或throw语句;如果finally块里也使用了return或throw等导致方法终止的语句,finally块一斤终止了方法,系统将不会跳回去执行try块、catch块里的任何代码。
自定义异常
继承自Exception或者RuntimeException,只需要提供无参构造和一个带参构造即可
相关文章推荐
- JDK动态代理和CGLIB动态代理+源码下载
- Spring 实现定时任务
- java开发工具快捷键使用大全(系列一)
- Java间隔计时触发器
- Mybatis-spring整合源码解析
- IOS 基于APNS消息推送原理与实现(JAVA后台)
- java中的匿名内部类总结
- Java for LeetCode 165 Compare Version Numbers
- SpringMVC+MyBatis项目总结(三)
- java 内部类
- JAVA关于图片处理的工具类
- java之树的子结构
- Java 静态代码块与构造方法执行次序
- eclipse配置问题汇总
- Java集合框架22课后编程题
- Java线程池使用说明
- java集合框架22
- 将 Shiro 作为一个许可为基础的应用程序 五:password加密/解密Spring应用
- SpringMVC+MyBatis项目总结(二)
- 【JAVA基础知识总结】JAVA数据类型基础