【发布时间】:2010-12-06 01:10:00
【问题描述】:
try {
// Do stuff
}
catch (Exception e) {
throw;
}
finally {
// Clean up
}
在上面的块中,finally块是什么时候调用的?在抛出 e 或最后被调用然后 catch 之前?
【问题讨论】:
-
附注你不应该“扔 e;”因为这会弄乱原始异常的堆栈跟踪。你应该只是“扔;”。或者创建一个新异常并将 InnerException 设置为“e”,然后再抛出它。
-
finally 如果它没有运行 last 将是一个非常糟糕的关键字选择,你不是说吗?
-
@ErvWalter 这仍然是真的吗?我在VS2017中以两种方式测试它,它似乎完全一样。您能否提供更多信息或参考?谢谢
-
只是命名建议使用 Exception ex - 为事件/代表保留 e
标签: c#