JavaScript 异常
本文最后更新于:2024年3月18日 凌晨
JavaScript 异常
- try 语句测试代码块的错误。
- catch 语句处理错误。
- throw 语句创建自定义错误。
- finally 语句在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行。
try 和 catch
- try 语句允许我们定义在执行时进行错误测试的代码块。
- catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
- JavaScript 语句 try 和 catch 是成对出现的。
语法
1 2 3 4 5 6 7
| try { ... } catch(e) { ... } finally { ... }
|
实例
- 在下面的例子中,我们故意在 try 块的代码中写了一个错字。
- catch 块会捕捉到 try 块中的错误,并执行代码来处理它。
1 2 3 4 5 6 7 8 9 10 11 12
| var txt=""; function message() { try { adddlert("Welcome guest!"); } catch(err) { txt="本页有一个错误,\n\n"; txt+="错误描述:" + err.message + "\n\n"; txt+="点击确定继续,\n\n"; alert(txt); } }
|
finally
- finally 语句不论之前的 try 和 catch 中是否产生异常都会执行该代码块。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| function myFunction() { var message, x; message = document.getElementById("p01"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "值是空的"; if(isNaN(x)) throw "值不是一个数字"; x = Number(x); if(x > 10) throw "太大"; if(x < 5) throw "太小"; } catch(err) { message.innerHTML = "错误: " + err + "."; } finally { document.getElementById("demo").value = ""; } }
|
throw
- throw 语句允许我们创建自定义错误。
- 正确的技术术语是:创建或抛出异常(exception)
- 如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。
语法
- 异常可以是 JavaScript 字符串,数字,逻辑值或对象。
实例
- 本例检测输入变量的值,如果值是错误的,会抛出一个异常(错误),catch 会捕捉到这个错误,并显示一段自定义的错误消息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function myFunction() { var message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "值为空"; if(isNaN(x)) throw "不是数字"; x = Number(x); if(x < 5) throw "太小"; if(x > 10) throw "太大"; } catch(err) { message.innerHTML = "错误: " + err; } }
|
- 请注意,如果 getElementById 函数出错,上面的例子也会抛出一个错误。