c# - 简单的 try/catch 不使用任何异常

标签 c# error-handling

我已经搜索了我的问题的答案,但没有找到。抱歉,如果答案在那里并且我正在复制!

我一直看到 try/catch 代码,例如.....

try
{
    //Do whatever
}
catch (Exception ex)
{
    MessageBox.Show("Oops, something went wrong!");
}

这将导致警告 ex is never used。

所以我的问题是...虽然 ex 从未使用过,但在声明中有什么好处吗?有人告诉我,也许它会向堆栈跟踪添加详细信息?有时我会看到 catch(Exception) 会停止警告,但如果有的话,这会带来什么好处?如果我要写这篇文章而不以任何方式使用异常,我就不会声明 ex...

try
{
    //Do whatever
}
catch
{
    MessageBox.Show("Oops, something went wrong!");
}

这不是什么大问题,但最好能确定一下!

谢谢

弗雷德

最佳答案

您可以使用以下模式,仍然声明特定的异常类型,没有变量,以确保结构化异常处理 (SEH) 仍在发生:

try
{
    //Do whatever
}
catch (IOException)
{
    MessageBox.Show("Oops, something went wrong in the IO!");
}
catch (Exception)
{
    MessageBox.Show("Oops, something went wrong!");
}

这不是我通常使用的做法,因为如果不重新抛出异常,我可能会记录异常详细信息。

关于c# - 简单的 try/catch 不使用任何异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11967151/

相关文章:

c# - 当顶级命名空间包含基类且内部命名空间包含子类时的 C# 命名空间和类/子类命名约定

C# Webdriver - 页面标题断言在页面加载前失败

flutter - Flutter无法捕获PlatformException

node.js 使用 Q 处理异常

javascript - 组件无法捕获作为 prop 传递的函数中的错误

rest - 如何避免 Golang 服务器 (Gin Gonic) 在 INTERNAL_ERROR 上崩溃

c# - Unity - 如何使用 Sprite 渲染器制作圆形进度条?

C# 如何处理多种消息类型?

c# - GetFolderFromPathAsync 函数访问被拒绝

java - 检索方法应该返回 'null' 还是在无法生成返回值时抛出异常?