JavaScript 错误
定义:当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误,我们把这种错误叫 JavaScript 错误。
相关语句:处理错误的相关语句如下:
语句 | 描述 |
try 语句 | 测试代码块的错误。 |
catch 语句 | 处理错误。 |
throw 语句 | 创建自定义错误。 |
finally 语句 | 在 try 和 catch 语句之后,无论是否有触发异常,该语句都会执行。 |
一、抛出错误
1、哪些错误
- 可能是语法错误,通常是程序员造成的编码错误或错别字。
- 可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。
- 可能是由于来自服务器或用户的错误输出而导致的错误。
- 当然,也可能是由于许多其他不可预知的因素。
2、如何抛出
当 JavaScript 引擎执行 JavaScript 代码时,如果发生错误,JavaScript 引擎通常会停止,并生成一个错误消息。
描述这种情况的技术术语是:JavaScript 将抛出(throw)一个错误。
3、问题
JavaScript 错误会导致 JavaScript 引擎停止,也就是无法继续执行后续代码。这可能会带来一些麻烦,比如某些浏览器差异:同样的方法在不同的浏览器上可能就是一个 JavaScript 错误,这会使得代码无法运行,这时候,我们需要使用 try/catch/finally 语句。
二、try/catch/finally 语句
try/catch/finally
语句用于处理代码中可能出现的错误信息。
1、语法
try {
// tryCode - 尝试执行代码块
}
catch(err) {
// catchCode - 捕获错误的代码块
}
finally {
// finallyCode - 无论 try / catch 结果如何都会执行的代码块
}
2、参数和关键字
参数 | 描述 |
try语句 | 允许我们定义在执行时进行错误测试的代码块。 |
catch语句 | 当 try 代码块发生错误时,所执行的代码块。 |
err | 错误信息。 |
finally语句 | 在 try 和 catch 之后无论有无异常都会执行。 |
注意: catch 和 finally 语句都是可选的,但你在使用 try 语句时必须至少使用一个。
3、应用
JavaScript 错误会导致后续代码无法执行。但是 try语句
捕捉到 JavaScript 错误后将执行 catch语句
,不会停止执行代码。所以,try/catch/finally
语句常用于:
- es6语法兼容
- 浏览器差异
var xhr = null
try {
xhr = new XMLHttpRequest()
}
catch (err) {
xhr = new ActiveXObject('Microsoft.XMLHTTP') // 兼容 IE5、IE6
}
三、throw 语句
throw
语句:创建或抛出异常(exception)。
使用:如果把 throw 与 try 和 catch 一起使用,那么您能够控制程序流,并生成自定义的错误消息。
v = document.getElementById('input').value
try {
if (v === '') throw '值为空'
if (isNaN(v)) throw '不是数字'
v = Number(v)
if (v < 0) throw '不能小于0'
}
catch (err) {
alert('错误: ' + err)
}
注意:如果 getElementById 函数出错,上面的例子也会抛出一个错误。