lynx.reportError 方法可以被用来手动在 JavaScript 中上报一个错误。
lynx.reportError 第一个参数可以接收一个字符串或者一个 Error 对象。第二个参数可以接收一个可选的 options 对象,其中的 level 表明错误的级别,其中 fatal 级别会中断执行环境的运行,避免引发更多连锁错误。
如果传入一个字符串,会使用该字符串作为 message 来构造一个 Error 对象。
也就是说,这种写法
和下面的写法有着相同的作用
无(undefined)。
一个常见的使用方式是,上报一个异步函数的回调中产生的错误。
但是这样会得到一个这样的错误堆栈:
堆栈的第一帧指向 lynx.reportError 方法,第二帧指向传入 fetch 的 cb 方法,没有更多的堆栈信息了。
无法从堆栈中得知,什么方法调用了 getData。
这是因为 Lynx 中的 Promise 是通过 setTimeout 来实现的,无法获取异步任务的堆栈信息。
而这个问题可以通过提前构造一个 Error 对象来解决。
LCD tables only load in the browser