在我的工作中,我必须维护一些C#项目。最初的开发人员不在了。最近我注意到一些奇怪的代码主要出现在这样的情况中:
try
{
//some Code
}
catch
{
0.ToString();
}
0.ToString()
是什么?大多数代码都是在压力下编写的,所以我可以想到两种可能性:
//TODO
),可以搜索它以了解您需要在哪里修复一些内容。还有其他用例或意义吗?这是好/坏编码风格还是练习?由于该指令不执行任何操作,它是否会对性能产生一些小的影响,或者编译器会将其删除吗?哪种方式更适合做
答案 0 :(得分:2)
正如评论所示,代码示例包含一个奇怪的事情和一个坏事。在
0.ToString();
几乎肯定是有一行代码,调试器可以放置一个断点。这是我见过的用于此目的的陌生线之一。在调试会话之后,这条线很可能是无意中提交的。
与此分开是空catch
块,这通常不是一个好主意。莱恩盖茨给出了一个很好的答案,所以我不打算扩大这一点。但具有讽刺意味的是,如果有一个合适的catch块,就会有一行代码来放置一个断点。
答案 1 :(得分:1)
没有其他用例或明智的理由这样做。这是一个糟糕的编码实践。您的代码不应该捕获它无法处理的任何异常。
前进的最佳方法是将其删除。抛出异常时,您需要了解该用例。然后,只有这样才能添加适当的检查和/或特定的异常处理代码。
有问题的代码是swallowing the exception, which is hazardous to your health的一个例子。