我们通常在GUI(表单)等代码的上层捕获异常.
但我通常有这种代码
try { } catch(Exception ex) { Console.WriteLine(ex.Message); MessageBox.Show("Application has encountered error...."); }
我可以在没有标识符的情况下捕获(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,如果发生了一些非常糟糕的事情.