gpt4 book ai didi

c# - C# 中的异常传播

转载 作者:行者123 更新时间:2023-11-30 13:09:35 24 4
gpt4 key购买 nike

假设我在 C# 程序中有三个函数 doA()、doB() 和 doC(),我知道 doA() 将调用 doB(),后者又调用 doC()。

由于 doC() 必须与数据库交互,我知道它很可能会生成无法解决的异常,需要引起用户的注意。目前,我的代码可能会在 doC() 中的 try/catch 中抛出错误,然后在另一个 try/catch 中调用 doB() 中的 doC() 以及类似地调用 doA 中的 doB() () 在 try/catch block 中。这让我可以只使用 throw;将异常踢到 doA() ,在那里可以合理地做一些事情来向用户显示它。

虽然这看起来有点矫枉过正。我想知道,既然我不打算处理 doB() 或 doC() 中的异常,我是否可以摆脱那里的 try/catch block 。

假设不涉及 finally block ,处理这种情况的最佳做法是什么?

最佳答案

如果你的 catch block 是这样的:

catch (Exception)
{
throw;
}

那么它们确实毫无意义。您并没有真正处理异常 - 根本不用理会 try/catch。

就我个人而言,我的代码中很少有 try/catch block - 虽然有很多隐式 try/finally block ,但大多数是由于 using 语句。

关于c# - C# 中的异常传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4391346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com