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.')" />