JavaScript try/catch/finally 语句参考
-
JavaScript try/catch/finally 语句
try/catch/finally语句处理在代码块中可能发生的部分或全部错误但仍然运行代码。错误可以是程序员所犯的编码错误,错误的输入,以及其他不可预见的事情。try语句允许您定义一个代码块,以便在执行时对其进行错误测试。catch语句允许您定义要执行的代码块,如果try块中发生错误。finally语句允许您在try和catch之后执行代码,而不管结果如何。注意:catch和finally语句都是可选的,但是在使用try语句时需要使用其中一个(如果不是两个)。提示:当发生错误时,JavaScript通常会停止,并生成一条错误消息。使用throw语句创建自定义错误(抛出异常)。如果您同时使用throw和try和catch,则可以控制程序流并生成自定义错误消息。有关JavaScript错误的更多信息,请阅读JavaScript错误教程。在这个例子中,我们在代码中(在try块中)输入了一个拼写错误。该示例应该提醒“欢迎客人!”,但警报拼写错误。catch块捕获错误,并执行代码来处理它:
尝试一下<!DOCTYPE html> <html> <body> <p id="demo"></p> <script> try { adddlert("Welcome guest!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script> </body> </html>
-
浏览器支持
项 IE/Edge Chrome FireFox Safari Opera 语句 try/catch/finally 支持支持支持支持支持 -
语法
try { tryCode - 要尝试的代码块 } catch(err) { catchCode - 用于处理错误的代码块 } finally { finallyCode - 无论try/catch结果如何,都要执行的代码块 }
-
参数值
参数 描述 tryCode 必需的。 在执行错误时要测试的代码块 err 如果与catch一起使用则必需。 指定引用错误的局部变量。 该变量可以引用Error对象(包含有关发生的错误的信息,如消息“'addlert'未定义”)。 如果异常是由throw语句创建的,则变量引用throw语句中指定的对象(请参阅“更多示例”) catchCode 可选的。 如果try块中发生错误,则执行代码块。 如果没有错误发生,则永远不会执行此代码块 finallyCode 可选的。 无论try/catch结果如何,都要执行的代码块 -
技术细节
项目 描述 JavaScript版本: ECMAScript 3 -
更多例子
此示例检查输入。如果值错误,则抛出异常(错误)。catch语句捕获异常(错误),并显示自定义错误消息:
尝试一下<!DOCTYPE html> <html> <body> <p>Please input a number between 5 and 10:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">Test Input</button> <p id="message"></p> <script> function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "is Empty"; if(isNaN(x)) throw "not a number"; if(x > 10) throw "too high"; if(x < 5) throw "too low"; } catch(err) { message.innerHTML = "Input " + err; } } </script> </body> </html>
在finally声明中,您可以执行try和catch代码后,无论结果如何都会执行finally中代码块:
尝试一下function myFunction() var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "Empty"; if(isNaN(x)) throw "Not a number"; if(x > 10) throw "Too high"; if(x < 5) throw "Too low"; } catch(err) { message.innerHTML = "Error: " + err + "."; } finally { document.getElementById("demo").value = ""; } }
-
相关页面
JavaScript教程:JavaScript 错误(Error)