Tag: 终于

error handling与try .. catch ..终于

我有一个怀疑,我正在使用finally块,我不明白其目的的基本面… function myFunc() { try { if (true) { throw "An error"; } } catch (e) { alert (e); return false; } finally { return true; } } 这个函数将运行catch块,提醒“An error”,但是然后返回true。 为什么不返回错误?

为什么我们最后使用块?

据我所知,以下两个代码片段将用于相同的目的。 为什么finally阻止? 代码A: try { /* Some code */ } catch { /* Exception handling code */ } finally { /* Cleanup code */ } 代码B: try { /* Some code */ } catch { /* Exception handling code */ } // Cleanup code

使用python“with”语句和try-except块

这是正确的方式来使用python“with”语句结合try-except块吗? try: with open("file", "r") as f: line = f.readline() except IOError: <whatever> 如果是这样,那么考虑旧的做事方式: try: f = open("file", "r") line = f.readline() except IOError: <whatever> finally: f.close() 这里的“with”语句的主要好处是我们可以摆脱三行代码? 这个用例对我来说似乎并不令人信服(尽pipe我明白“with”语句有其他用途)。 编辑:上述两个代码块的function是否相同? 编辑2:前几个答案一般谈到使用“与”的好处,但在这里似乎边际利益。 我们已经(或应该已经)明确地调用f.close()多年了。 我想一个好处是,马虎编码器将受益于使用“与”。

finally块总是运行吗?

有没有什么条件最终可能不会在Java中运行? 谢谢。