gpt4 book ai didi

c# - 我可以用 throw 移除空捕获吗?

转载 作者:IT王子 更新时间:2023-10-29 04:24:00 26 4
gpt4 key购买 nike

我希望这很简单。我在一个大型代码库上工作,整体质量很好,但偶尔你会得到其中的一些:

try
{
// Calls a .NET remoting method.
}
catch
{
throw;
}

请注意,没有 finally 逻辑,并且 catch 没有指定任何异常,也没有做我上面提供的以外的任何事情。但是,我知道捕获和重新抛出可以改变异常详细信息中的调用堆栈。我不确定的是,此行为是否是专门因为 .NET 远程调用而出现的。

删除这个 try-catch 是否安全?据我所知,是的,但我想我会先仔细检查是否有任何奇怪的行为。

最佳答案

重新抛出正如您展示的那样 不应该改变调用堆栈,除非有一些关于远程处理异常的非常特殊的东西。 (我知道有一些特殊的方面,但我不认为它们在这里发挥作用。)这是确实丢失信息的事情:

catch(Exception e)
{
throw e; // Not throw;
}

我的猜测是某些开发人员包含此内容只是为了在throw 行上放置一个断点。我会摆脱它。

关于c# - 我可以用 throw 移除空捕获吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6517699/

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