JavaScript学习笔记:客户端编程之异常处理

未被捕获的异常

在程序中,往往会出现异常。虽然主动捕获这些异常是保证程序健壮的必要做法,但是难免会漏掉一些。
对于未被捕获的异常,浏览器会在控制台显示一条错误信息,该信息包含异常信息和其在代码中出现的位置。

window.onerror

Window对象有一个onerror属性,将其指定为一个函数,可以处理未被捕获的异常。
在未被捕获的异常沿着调用栈一路向上传播,错误信息即将显示到控制台时,该函数会被调用。
它被传入多个参数:

  • message: 描述异常的信息
  • url: 导致异常的JavaScript代码的URL
  • line: 文档中发生异常的代码的行数
  • column: 文档中发生异常的代码的列数
  • error: 异常对象本身

未被处理的Promise reject

若Promise对象调用了reject,但未使用catch方法处理的情况与为被捕获的异常十分类似,浏览器会在控制台抛出被拒绝的Promise对象与拒绝理由。

window.onunhandlerejection 与 unhandledrejection 事件

通过为Window对象指定onunhandlerejection属性或注册unhandledrejection事件监听器,来处理没有reject处理器的Promise对象。
该事件处理器函数接受的Event对象参数有两个有用的属性:

  • promise: 指向未被处理的Promise对象
  • reason: 拒绝Peomise的原因
posted @ 2023-06-10 22:53  钰琪  阅读(30)  评论(0编辑  收藏  举报