我有以下代码行:
FileInfo dbFile = new FileInfo(fileName);
dbFileSize = (long)dbFile.Length / 1024;//KBnew FileInfo(fileName)和dbFile.Length调用有8种可能的例外。我不能就这么无视他们。,我得抓住他们,。
您将如何处理那些8异常?分开抓(太多行了)?只抓一个通过抓住超级Exception除外?或者..。
发布于 2011-01-10 19:55:13
正如其他人指出的,一般规则是:不要捕获无法处理的异常。考虑到您知道该做什么,您应该单独捕获这8个异常,参见准则1。您不应该捕获Exception的原因是,您也会捕获诸如ThreadAbortException这样的关键异常,这是您根本不应该做的。
1:http://msdn.microsoft.com/en-us/library/ms229005.aspx。
发布于 2011-01-10 16:30:15
正确的操作是忽略它们,除非您能够真正修复它们。
它们将传播到调用代码,这些代码可能能够修复它们,或者记录它们,或者其他什么。但是,除非你能在你的水平上改善这种情况,否则就不要抓住它们。
发布于 2011-01-10 16:31:56
如果你知道如何处理它们(例如,如果你能补救这种情况),或者在你的水平上处理它们是有意义的,那么就抓住它们。否则,让高级代码来处理它。
还有一件事。如果要让高级代码处理异常,还可以捕获异常并将其“包装”,然后使用不同的异常对象,然后抛出异常。新的例外应该是在高级代码(即调用使用API的代码的代码)上下文中有意义的异常。通常,这是一种很好的方法,可以阻止有关低级代码的细节“泄漏”到更高级别(实质上是停止抽象泄漏)。
https://stackoverflow.com/questions/4648982
复制相似问题