c# - 调用 Console.WriteLine(ex.Message) 以防止出现警告消息

标签 c# winforms exception-handling console.writeline

我们通常在 GUI(表单)等代码的上层捕获异常。

但是我一般都有这种代码

try
{
}
catch(Exception ex)
{
  Console.WriteLine(ex.Message);
  MessageBox.Show("Application has encountered error....");
}

我可以在没有标识符的情况下直接 catch(Exception),因为我在运行时不需要消息,但对于调试构建,在 catch 语句处中断肯定很方便。所以我通常会写一个 Console.WriteLine 来防止很多未使用的 ex 变量的警告。我的代码中有很多 Console.WriteLine(ex.Message) 的情况。这样性价比会下降吗?

注意:更改了标题“Console.WriteLine(ex.Message) 是否有性能成本?”到“调用 Console.WriteLine(ex.Message) 以防止出现警告消息”

最佳答案

这是 1 中的多题,所以我将尝试展开它:

首先

try{
  ...
}
catch(Exception) 
{
}

是完全有效的语法。添加 Console.WriteLine(ex.Message) 只是为了在没有警告的情况下进行编译并不是正确的做法。

其次

Console.WriteLine 不是进行诊断的正确方法,请查看 Trace.WriteLine 或更好的是 Logging framework .当然Console.Writeline是有开销的,开销不算太严重,但是调用了,还是有开销的。

第三

有时崩溃更好,它迫使你解决根本问题,至少做一个Debug.Assert如果真的有什么不好的事情发生。

关于c# - 调用 Console.WriteLine(ex.Message) 以防止出现警告消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1056324/

相关文章:

c# - 如何从谷歌地图API获取城市和邮政编码?

c# - 视觉继承 - 将设计器中的控件添加到 TableLayoutPanel 中托管的面板

.net - 如何将 Windows 窗体窗体的大小调整为小于 132x38?

c# - 如何获取我的 Windows 应用商店应用程序的名称和版本信息?

c++ - 如何引发C++异常

c# - 使用 InsertOneAsync (.NET Driver 2.0) 插入新文档

c# - Azure Blob 存储中未发现异常

c# - 我们可以在 Entity Framework 中使用没有主键的表吗?

vb.net - 哪种形式导致了我的异常(exception)?

c++ - 如何打印 C++ 中捕获的异常的堆栈跟踪和 C++ 中的代码注入(inject)