在JavaScript
中主要通过Error
对象提供错误堆栈信息,当程序出现错误是经常可以看到堆栈错误信息的输出,本文主要简单介绍如何对错误堆栈进行捕获和格式化输出。
概述
对于JavaScripts
的Error
对象,我们经常可以看到如下错误信息:
对于以上的错误信息,我们可能需要进行提取加工处理,比如提取后用于日志的记录等。
那么,如果能够提取出其中我们需要的信息呢?
正则提取
最容易想到的方法就是通过正则表达式的方法进行提取,此方法这里不再过多讲述,下面来讲下v8
暴露出来的方法。
Error.prepareStackTrace
说明
Node
主要是基于v8
实现,而v8
提供了定制Error
中Stack
的方法
- error:对象本身
- structuredStackTrace:调用栈信息数组
Error
默认情况下返回的stack
信息字符串,我们可以通过该函数进行定制化处、格式化处理- 该方法会修改全局
Error
行为
代码示例
备注
以上代码将Stack
堆栈信息以自定义数组格式进行输出,其中callSites
是一个对象,其中包括一下函数:
- getTypeName: 获取类型
- getFunction: 获取当前函数
- getFunctionName: 获取当前函数名
- getMethodName: 获取方法名
- getFileName: 获取文件名
- getLineNumber: 获取行数
- getColumnNumber: 获取列数
🚗