Java之Undeclared Checked Exception

以前一直认为在Java里若是每一个task是相对独立、而且是能够容忍错误的,那么只须要处理Checked Exception(这个是Java强制的)和主动处理Unchecked Exception(派生至RuntimeException)便可。java

可是昨天在服务器端代码调试后发现,Java里面有好多种方法能够throw上面两种方法不能处理的Undeclared Checked Exception,具体作法能够参考:http://java.dzone.com/articles/throwing-undeclared-checked服务器

而因为咱们是使用的netty框架,仔细阅读其源码后发现,netty使用了上面连接里说的方法一和方法五框架

Method #1: the sun.misc.Unsafe classspa

Method #5: Generics调试

而且netty里面为了处理未知异常,隔离开各个task的处理,都是捕获了Throwable,而且发如今netty里面确实会throw Error的,因而我将原来用来隔离独立、能够容忍错误的task的捕获RuntimeException改为了捕获Throwable。netty

分析总结之后,我将Java的Exception划分为三类:get

Checked Exception源码

Unchecked Exceptionio

Undeclared Checked Exceptionclass

第三种我认为这是java的潜在致使错误的问题,但存在了,咱们就应该主动处理。

相关文章
相关标签/搜索