gpt4 book ai didi

c# - 如何在不使用 try-catch 的情况下捕获和记录 Using 语句中的异常?

转载 作者:太空宇宙 更新时间:2023-11-03 19:15:08 24 4
gpt4 key购买 nike

据我所知,Using 语句内置了 Dispose() 和 Try-Catch 的实现。所以我想知道一些事情

  1. 是否可以在不使用语句的情况下在 using 语句中记录异常在语句内部或外部使用 try-catch block 。如果不是,那为什么它内置到声明中。

  2. 嵌套或过度使用 try-catch 不是首选,那么为什么要使用这种模型优先使用。

            using (some_resource)
    {
    try
    {
    }
    catch
    {
    }
    finally
    {
    //my exception logging mechanism
    }
    }

会变成

            try
{
try
{
}
catch
{
}
finally
{
//my exception logging mechanism
}
}
catch
{
}
finally
{
//some_resource.Dispose()
}

最佳答案

using 语句涉及try/finally;没有catch。但坦率地说,您的担心是多余的;多重嵌套和复杂的 try/catch/finally 是“不可取的”,因为:

  • 它使代码难以阅读
  • 甚至更难做到正确(大多数人都弄错了,唉)
  • 它经常被滥用
  • 这表明你的方法做的太多了

使用 using,这不是问题;它使意图非常清晰,不会增加复杂性或顾虑。

我只会使用:

using (some_resource) {
try {
// some code
} catch (Exception ex) {
LogIt(ex);
throw;
}
}

关于c# - 如何在不使用 try-catch 的情况下捕获和记录 Using 语句中的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17589126/

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