• Java之Undeclared Checked Exception


    之前一直认为在Java里如果每个task是相对独立、并且是可以容忍错误的,那么只需要处理Checked Exception(这个是Java强制的)和主动处理Unchecked Exception(派生至RuntimeException)即可。

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

    而由于我们是使用的netty框架,仔细阅读其源码后发现,netty使用了上面链接里说的方法一和方法五

    Method #1: the sun.misc.Unsafe class

    Method #5: Generics

    并且netty里面为了处理未知异常,隔离开各个task的处理,都是捕获了Throwable,并且发现在netty里面确实会throw Error的,于是我将原来用来隔离独立、可以容忍错误的task的捕获RuntimeException改成了捕获Throwable。

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

    Checked Exception

    Unchecked Exception

    Undeclared Checked Exception

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

  • 相关阅读:
    POJ 1703 Find them, Catch them
    POJ 2236 Wireless Network
    POJ 2010 Moo University
    POJ 2184 Cow Exhibition
    POJ 3280 Cheapest Palindrome
    POJ 3009 Curling 2.0
    POJ 3669 Meteor Shower
    POJ 2718 Smallest Difference
    POJ 3187 Backward Digit Sums
    POJ 3050 Hopscotch
  • 原文地址:https://www.cnblogs.com/kevinwan/p/3160573.html
Copyright © 2020-2023  润新知