Javascript的try...catch...else...finally与Python、Java、Ruby等语言类似。

9 浏览
0 Comments

Javascript的try...catch...else...finally与Python、Java、Ruby等语言类似。

Javascript如何实现其他语言支持的四部分try-catch-else-finally执行模型?

Python 2.5的新功能中有一个清晰简洁的摘要。用Javascript的术语来说:

// 这个示例是一个语法错误
try {
  // 受保护的代码块
} catch(e) {
  // 异常处理块
} else {
  // 其他情况的代码块
} finally {
  // 最终执行的代码块
}

代码中的受保护的代码块会被执行。如果代码抛出异常,则执行异常处理块;如果没有抛出异常,则执行其他情况的代码块

无论之前发生了什么,只要代码块完成并处理了所有抛出的异常,最终执行的代码块都会被执行。即使在异常处理块其他情况的代码块中发生错误并引发了新的异常,最终执行的代码块仍然会被运行。

请注意,将其他情况的代码块剪切并粘贴到受保护的代码块的末尾是错误的。如果其他情况的代码块中发生错误,它不能由异常处理块处理。

0