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

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


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值