如果我有这样的代码:
void a()
{
try
{
b();
}
catch (MyException)
{
// Handle any problems that occurred in b(c(d()))
}
}
void b()
{
c();
// Do something else
}
void c()
{
d();
// Do something else
}
void d()
{
// Do something, throw a MyException if it fails
}
假设在任何时候都不需要清理,最好是在 c() 中对 d() 的调用和 b() 中对 c() 的调用周围放置一个 try{}catch{throw;} 还是在没有任何干预 try/catch block 的情况下让 d() 的异常“自然地”冒泡到 a() 是否可以?
我想额外的 try/catch block 充当一种“文档”,但它们似乎是多余的,所以我只是想知道其他人会认为什么是最好的方法。
抱歉,如果这一切都太基础了,我正在努力了解异常,但我似乎对它们还没有很好的感觉。
最佳答案
让它传播直到你能处理它。如果你不能处理它,就没有意义捕获它。那么问题来了,能否有效处理c()
方法内部的异常?
关于c# - 异常捕获最佳实践 (c#/.net),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/569227/