C#尝试/捕获最佳实践

时间:2013-12-10 16:06:40

标签: c# try-catch

我一直在审查一些生产代码,似乎有很多Try / Catches,在Try中有一些逻辑,但是空Catch。

这是正常做法吗?

你能不能只使用If语句?

如果您不打算抓住任何东西,使用Try / Catch似乎很奇怪。

4 个答案:

答案 0 :(得分:3)

一个不做任何事情的灾难性陈述是一个不幸的常见错误的编程实践:

try
{
    DoSomething();
}
catch (Exception e)
{
    //empty
}

它幽默地被称为Pokémon Exception Handling (#2),因为“你只需要抓住所有人”。

答案 1 :(得分:0)

你是对的。

if-else虽然不是try-catch的替代品。 如果您的代码抛出异常(自愿或不情愿),并且您希望代码继续处理,或者只是向调用者抛出另一个异常,那么尝试捕获就是可行的方法。 我没有看到你的代码来评估try catch实现的正确性。 可能有助于展示它。

答案 2 :(得分:0)

我有一个关于一个人的故事,他是开发团队中最好的程序员。没有人可以打败他,因为他的所有代码多年来都没有抛出任何例外。

当他退出并且其他人开始审查他的代码时,恐怖故事开始了。

他为代码中的每个逻辑使用了try和empty catch。

开发团队不得不重写他的整个代码库。

答案 3 :(得分:-2)

我在这里找到了答案:

Try-catch: is this acceptable practice?

这确实是一种不好的做法。