1
10
在这种情况下,raise操作没有效果,应该删除,因为它只是重新引发异常块刚刚捕获的异常。raise通常用于在没有适当的错误处理可用时将控制转移到块的末尾。在下文中,我们将处理自定义异常,但任何其他异常都应在其他地方处理。
请注意,有一种外观相似的形状,但没有“raise”,它确实会产生吃/藏任何异常的副作用。非常不择手段的开发商的做法,他们希望能够在竞争中占据一席之地。
|
2
6
删除上述代码段中的except代码不会有任何区别。你可以(而且我相信你) 应该 因为它降低了可读性)请删除它。 |
3
2
首先是它 有意义:如果execSQL抛出异常,则try块将捕获该异常并将其转发到except。然后,它被提升转发到下一个更高的区块。 有用的 ? 可能不会。这几乎可以肯定是三件事之一的结果:
|
4
2
我可能回答得有点快,看最后。。。
现在谈谈“为什么”。如果在raise之前插入了/曾经/将会/正在其他地方/某种类型的日志代码,则可能需要标准化异常处理:
或用于清除代码:
使现代化
|
5
2
这段代码除了允许原始程序员在“Raise”上放置一个断点,并在源代码中更近距离地查看异常的可能原因之外,什么都不做。从这个意义上说,它是一种完全合理的调试技术。 |
6
1
事实上,我应该将此作为对Fran§ois答案的评论发布,但我不知道是否可以在此处插入格式化代码:(所以我将此作为答案发布)。 2mghie:
如果您将“finally”放在那里,函数将始终返回nil。如果您完全忽略了“try”块,那么在“…”中出现异常时将出现资源泄漏。
|
7
0
标题包含了一个相当广泛的问题,而其解释给出了一个更具体的例子。因此,我对这个问题的回答,以及它是如何从这个例子开始的,无疑可以为这里已经说过的话添加任何有用的东西。
但是
大概
Blorgbeard确实想知道它是否是
完全
有意义
只不过使用一个单独的
|
8
0
这段代码除了重新引发一个异常之外什么都不做,该异常将在没有try-except块的情况下引发。您可以安全地将其移除。 |
lfox · 如果列中不存在某个值,则停止代码执行 2 年前 |
juztcode · 在C++中尝试捕获-创建了多少个对象 6 年前 |
Novic · 结果不明确时如何使用tryCatch 6 年前 |
Jacob Nelson · 多次尝试表达式,直到在R中成功 6 年前 |
Mert Yücel · 如何在布尔方法中引发三个异常? 6 年前 |
Jatt · 捕获从setInterval内部引发的异常 6 年前 |