1、try...catch...finally语法
运行时错误,也称为异常,发生在执行期间(在编译/解释之后)。使用try...catch...finally
可以捕获编程代码中的异常情况和运行时异常,但不能捕获JavaScript语法错误。
例如,
<script type = "text/javascript"> try { // 运行的代码 [break;] } catch ( e ) { // 发生异常时运行的代码 [break;] } finally { // 无论异常发生,始终执行的代码,finally代码块不需要可以不写 } </script>
注意:try
块后面必须紧跟一个catch
块或一个finally
块(或两者之一)。当try块中发生异常时,将异常放在e
中并执行catch
块。可选的finally
块在try/catch
之后无条件执行。
try...catch使用示例如下,
<html> <head> <script type = "text/javascript"> function myFunc() { var a = 100; try { alert("a = " + a ); } catch ( e ) { alert("Error: " + e.description ); } try { alert("b = " + b); } catch ( e ) { alert("Error: " + e.description ); } } </script> </head> <body> <p>单击下面以查看结果:</p> <form> <input type = "button" value = "点击" onclick = "myFunc();" /> </form> </body> </html>
try...catch...finally使用示例如下,
<html> <head> <script type = "text/javascript"> function myFunc() { var a = 100; try { alert("a = " + a ); } catch ( e ) { alert("Error: " + e.description ); } finally { alert("Finally block will always execute!" ); } try { alert("b = " + b); } catch ( e ) { alert("Error: " + e.description ); } finally { alert("Finally block will always execute!" ); } } </script> </head> <body> <p>单击下面以查看结果:</p> <form> <input type = "button" value = "点击" onclick = "myFunc();" /> </form> </body> </html>
2、throw语法
可以使用throw
语句来引发内置异常或自定义异常。之后可以捕获这些异常,并采取适当的操作。
例如,
<html> <head> <script type = "text/javascript"> <!-- function myFunc() { var a = 100; var b = 0; try { if ( b == 0 ) { throw( "Divide by zero error." ); } else { var c = a / b; } } catch ( e ) { alert("Error: " + e ); } } //--> </script> </head> <body> <p>单击下面以查看结果:</p> <form> <input type = "button" value = "点击" onclick = "myFunc();" /> </form> </body> </html>
注意:可以使用字符串、整数、布尔值或对象在一个函数中引发异常,然后你可以在上面我们做的同一个函数中捕获该异常,或者在另一个函数中使用try…catch
块。
3、onerror()方法
onerro
r事件处理程序是JavaScript中第一个方便错误处理的特性。每当页面上发生异常时,都会在窗口对象上触发onerror
事件。
例如,
<html> <head> <script type = "text/javascript"> window.onerror = function () { alert("An error occurred."); } </script> </head> <body> <p>单击以下内容查看结果:</p> <form> <input type = "button" value = "点击" onclick = "myFunc();" /> </form> </body> </html>
onerror
事件处理程序提供了三个参数来确定错误的确定错误信息
msg:第一个参数,与浏览器显示的给定错误相同的消息。
url:每二个参数,出现错误的文件。
line:第三个参数,在给定url中导致错误的行号。
例如,
<html> <head> <script type = "text/javascript"> window.onerror = function (msg, url, line) { alert("Message : " + msg ); alert("url : " + url ); alert("Line number : " + line ); } </script> </head> <body> <p>单击以下内容查看结果: </p> <form> <input type = "button" value = "点击" onclick = "myFunc();" /> </form> </body> </html>
或者
<img src="myimage.gif" onerror="alert('An error occurred loading the image.')" />