你知道任何情况下空的挡块不是绝对的邪恶吗?
try
{
...
// What and When?
...
}
catch { }
你知道任何情况下空的挡块不是绝对的邪恶吗?
try
{
...
// What and When?
...
}
catch { }
关于此问题有很多问题,请试着看看:
从该帖子的接受答案:
通常空的try-catch是个坏主意,因为你正在静默地吞下错误条件然后继续执行。有时这可能是正确的做法,但通常这表明开发人员看到了异常,不知道该怎么做,因此使用空捕获来解决问题。
它的编程相当于将黑色胶带放在发动机警告灯上。
看一眼 这个它基本上将你可能遇到的异常分为四类,其中没有一类应由空的catch块处理。
我会说你至少应该提供某种评论或记录消息,表明你在try {}中放入的内容引发了异常,这就是你没有做任何事情的原因。
公理:
空抓块绝对是邪恶的
不要试图找到解决方法。只是试图找到他们不是绝对邪恶的案例意味着你在浪费宝贵的大脑周期。不要试图在这里找到一个模式,想“嗯,我应该把空挡块放在这里吗?”
如果你在某人的代码中偶然发现一个空的陷阱,你只是偶然发现了 技术债务。修理它。即使只是在一个空的catch块中添加一个日志语句,你也会让这个世界变得更加美好。
我用它来做一些自编的库,我需要一些东西 bool TrySomething(out object)
功能还是 object TrySomething()
底层调用不提供任何其他机制作为例外。在这种情况下,我使用一个空的catch块并返回 false
要么 null
(取决于功能签名)。
public bool TrySomething(out object destination)
{
try
{
destination = DoSomething();
return true;
}
catch
{}
return false;
}