gpt4 book ai didi

c# - 空捕获 block

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

有一个库(我不控制)包含一个名为 Inner 的函数,该函数引发类型为 StupidException 的异常。我正在编写一个名为 Outer 的函数,该函数调用 Inner。我无法提前知道什么时候会引发 StupidException,我也无法以任何合理的方式处理它。我不希望我的函数 Outer 的调用者看到 StupidException -- 我将通过从 Outer< 返回 null 来向他们传达这种情况/strong>,而不是(出于几个原因)。所以,在我看来,最合理的代码是:

public thing Outer()
{
thing result = null;
try
{
result = Inner();
}
catch(StupidException ex)
{
// do nothing
}
return result;
}

我读过关于空 catch block 是多么邪恶的严厉警告,因为它“吞噬”了异常。吞下异常正是我想要做的,实际上,但空的 catch block 对我来说仍然感觉不对。有没有更好的办法?

最佳答案

如果这会让你感觉更舒服,你可以从 catch block 返回,这样它看起来就不会是空的:

public thing Outer()
{
try
{
return Inner();
}
catch
{
return null;
}
}

如果意图是吞下异常,那没问题。您可能只想验证此内部函数可能抛出的异常类型,以便仅捕获它们而不是捕获所有异常。例如,您可以联系此代码的作者,询问他们的代码可能抛出的异常类型,然后仅针对这些异常。

关于c# - 空捕获 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15174914/

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