首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理代码中API/库中的异常?

如何处理代码中API/库中的异常?
EN

Stack Overflow用户
提问于 2011-01-10 16:28:14
回答 5查看 221关注 0票数 2

我有以下代码行:

代码语言:javascript
复制
FileInfo dbFile = new FileInfo(fileName);
dbFileSize = (long)dbFile.Length / 1024;//KB

new FileInfo(fileName)dbFile.Length调用有8种可能的例外。我不能就这么无视他们。,我得抓住他们,

您将如何处理那些8异常?分开抓(太多行了)?只抓一个通过抓住超级Exception除外?或者..。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-01-10 19:55:13

正如其他人指出的,一般规则是:不要捕获无法处理的异常。考虑到您知道该做什么,您应该单独捕获这8个异常,参见准则1。您不应该捕获Exception的原因是,您也会捕获诸如ThreadAbortException这样的关键异常,这是您根本不应该做的。

1:http://msdn.microsoft.com/en-us/library/ms229005.aspx

票数 1
EN

Stack Overflow用户

发布于 2011-01-10 16:30:15

正确的操作是忽略它们,除非您能够真正修复它们。

它们将传播到调用代码,这些代码可能能够修复它们,或者记录它们,或者其他什么。但是,除非你能在你的水平上改善这种情况,否则就不要抓住它们。

票数 9
EN

Stack Overflow用户

发布于 2011-01-10 16:31:56

如果你知道如何处理它们(例如,如果你能补救这种情况),或者在你的水平上处理它们是有意义的,那么就抓住它们。否则,让高级代码来处理它。

还有一件事。如果要让高级代码处理异常,还可以捕获异常并将其“包装”,然后使用不同的异常对象,然后抛出异常。新的例外应该是在高级代码(即调用使用API的代码的代码)上下文中有意义的异常。通常,这是一种很好的方法,可以阻止有关低级代码的细节“泄漏”到更高级别(实质上是停止抽象泄漏)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4648982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档