c# - 异常捕获最佳实践 (c#/.net)

标签 c# exception

如果我有这样的代码:

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/

相关文章:

c# - Notepad++ .NET 插件 - 获取当前缓冲区文本 - 编码问题

C# EF ASP.NET Web API 超时 - 如何调用长时间运行的查询?

unit-testing - 如何在 minitest 中测试异常?

java.io.IOException : No X-Jenkins-CLI2-Port (jenkins cli not working ) 异常

java - 使用多个 catch block 进行异常处理

python - 为什么在异常消息中附加信息不起作用?

objective-c - 如何在 XCode 4.6 中获取异常详细信息?

c# - .net 错误消息。为什么它们如此通用?

c# - 路由未定义的 Controller

c# - 此 linq 代码中的多个 orderby