gpt4 book ai didi

c# - 避免在 try/catch block 中出现警告 "variable is declared but never used"

转载 作者:太空狗 更新时间:2023-10-29 22:36:56 27 4
gpt4 key购买 nike

给定以下 C# 代码:

public void CatchExceptionThenThrow()
{
try
{
StartThings();
}
catch (Exception)
{
throw;
}
}

我已经使用 dotnetfiddle VB.net 转换器将其转换为 VB:

Public Sub CatchExceptionThenThrow()
Try
StartThings()
Catch As Exception
Throw
End Try
End Sub

这会引发编译错误:

Catch As Exception

End of Statement expected

然后我将其更改为:

Public Sub CatchExceptionThenThrow()
Try
StartThings()
Catch ex As Exception
Throw
End Try
End Sub

但这会产生一个警告“已声明但从未使用过的变量”。我如何在 VB 中进行 throwing 而不是 throw exing 而没有得到警告,同时保留第一个 C# 示例中的整个堆栈跟踪?


所有好的评论,感谢您提供的冗余信息我意识到完全不需要 try/catch,因为无论有没有 try/catch 都会发生这种情况。这个问题更多是出于好奇,我认为在(好的代码)现实中没有真正的基础。

我最近在一篇关于异常处理的博客文章中看到了类似的内容,以及为什么要throw vs throw ex,我只是好奇如何完成相同的代码在 VB 中 - 因为我不擅长 VB,所以我想更好地理解它和异常处理。

我曾希望能够找到我在上面引用的博文,但找不到了。可以找到它的要点(产生问题):https://dotnetfiddle.net/741wAi

最佳答案

只需要一个空的 Catch,例如:

Try
StartThings()
Catch
Throw
End Try

但是如果你在 Catch block 中除了重新抛出它之外没有做任何事情,那么首先就没有必要使用 try-catch 了。

您可以使用不带 try-catch 的 StartThings(),如果出现异常,异常将传播给调用者。

您收到 Catch ex As Exception 警告的原因是您在变量 ex 中捕获了异常,但您没有在任何地方使用它。

关于c# - 避免在 try/catch block 中出现警告 "variable is declared but never used",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28907389/

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