【发布时间】:2012-05-17 05:20:46
【问题描述】:
我在这里查看了其他一些try catch finally 问题,但我不确定这个问题是否已得到解答。做这样的事情会不会闻起来很糟糕:
Exception? ex = null;
try { //something }
catch (Exception e) { ex = e ;}
finally {
DoSomething();
}
... //more code
//end of method
if (ex !=null) { throw ex; }
基本上,我试图确保某些代码(在 try/catch/finally 之外)运行,并且如果发生异常则抛出异常,但直到所述代码运行之后。我不能将所有代码都放在 finally 块中,因为它超出了某些条件。
如果这确实闻起来很糟糕(我怀疑确实如此),那么人们将如何做到这一点?
【问题讨论】:
-
你在 catch 内部的地方做了什么有用的事情,最后不允许完全删除 catch 并让异常传播?我想如果你
throw ex;以后你抓住它时得到的信息会更少(比如来源等)。
标签: c# try-catch-finally