假设我的团队正在开发一个库程序,由于某种原因,现在希望能够得到所有最外层
API
所抛出的所有异常的类型、各自的信息、并且能够附上各种异常所出现的原因和解决办法。如果开发过程中内部使用的是
Unchecked
Exception
,那么对于这个任务简直就麻烦了。没办法,开发人员一个个的自我进行检查然后统计吧,但是往往这样的统计总会有漏网之鱼。现在的
MSDN
中的异常信息糟糕的很,最底层的公有库的异常信息内容可能完整一点,但是上层的库的异常信息糟糕的不行,根本不能完整的报全所有出错的可能性。
你可以想象的出,一个库函数的异常信息不完整,对于他的用户来说,是多么不友好的事情。假设
MSDN
中
File.Open()
会抛出
IOException
,你的程序就很难想到很规矩的对
IOException
做了
catch
,然后提示用户检查相应位置的文件是否存在
/
被打开等。别指望
MSDN
的那些信息能够对终端用户有多大的帮助,太多不懂计算机的人在傻呆呆的握着鼠标了。再加上
MicroSoft
的提示信息本身就存在着“答非所问”,“莫名其妙”的事情,用户看到这些情况就更不知道怎么解决问题了。再加上自己的应用程序中会弹出一个个“蹩脚”的运行时错误的错误框,真的不是一个很如意的创作。
但是,如果使用的是
Checked Exception
,这时候编译器会强迫你的外部接口的异常相当的完整,最起码可以做到比
MSDN
的异常类型齐整。