异常
来源:互联网 发布:淘宝耐克正品店铺 贴吧 编辑:程序博客网 时间:2024/06/04 18:59
有些东西“食之无味,弃之可惜“,比如java中异常及其处理机制,所以,最终我还是选择了总结。
一、异常
1. 概念
异常:影响程序正常编译/运行的各种因素;
2. 关系
Java中的异常是分层的,且均继承自Throwable,继承图谱如下:
注意:黑框里均为运行时异常,蓝色框里为编译时异常;
3. Checked exception VS Unchecked exception
Checked exception:可查异常(编译时异常),除了RuntimeException及其子类外,其他Exception及其子类均为可查异常,编译器会检查此类异常,并且当程序中可能出现此类异常时,需用try…catch语句捕获或用throws子句声明抛出它;
Unchecked exception:不可查异常,包含运行时异常(RuntimeException)和错误(Error);
二、异常处理
java中的异常处理主要针对编译时异常,涉及到try…catch…finally及throw和throws,下面将分别展开说明:
1. try…catch…finally
关于这个处理链有许多细节可谈,比如异常捕获的范围,通常不建议直接捕获Exception,但是这里我要强调的是调用资源或创建连接时的关闭问题。当调用资源或创建连接时,一定要使用带资源的try语句或者在finally中关闭资源,否则可能导致内存泄漏,为什么会导致内存泄漏呢,这个就涉及到try语句的执行机制和垃圾回收的问题了。因为如果你在try语句中关闭资源,将可能因异常而无法执行关闭资源的操作,JVM将无法判定资源能否回收,资源将永久存在堆内存中,进而导致内存泄漏问题;
2. throw VS throws
throw: 用于在方法中抛出异常;
throws:用于在方法头中抛出异常;
三、参考
java中5种常见的异常(Exception)
阅读全文
0 0
- 异常
- 异常!
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 14_CXF发布REST服务
- 如何配置python的运行环境?
- Ubuntu14.04上配置caffe
- nodejs浏览器跨域问题解决
- 学习SpringMVC——配置文件和第一个SpringMVC应用
- 异常
- CXF发布restful WebService的入门例子(客户端)
- shell常用代码块
- BZOJ 3036 绿豆蛙的归宿
- 不知道说点什么才好
- 在线将chm转为pdf
- 源码编译安装gcc-5.3.0
- 大字段的设置--lobHandler
- windows下使用net-snmp实现agent扩展(一)