欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【JavaScript编程】JavaScript 错误之 throw 和 try/catch/finally 语句

程序员文章站 2022-04-06 15:55:25
...

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 函数出错,上面的例子也会抛出一个错误。