首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让一个简单的stacktrace js示例工作?

如何让一个简单的stacktrace js示例工作?
EN

Stack Overflow用户
提问于 2015-11-30 23:07:04
回答 2查看 4.1K关注 0票数 3

我正在尝试使用一个非常简单的stacktrace.js示例。我正在尝试利用printStackTrace()方法来实现这一点。

基本上,我调用的是一个buggy函数,它会在控制台中抛出一个错误和堆栈跟踪。但是,我希望在控制台中显示此错误和堆栈跟踪,并将其存储在一个字符串中,并打印该字符串。

例如,如果我运行此函数

代码语言:javascript
复制
function foo() {
  var x = y;
}

我得到一个未捕获的引用错误y is not defined

我需要将它存储在一个字符串中。

到目前为止,我已经尝试了以下方法

代码语言:javascript
复制
var error = null;
function foo(){
    try {
        var x = y;
    } catch(e) {
        error = printStackTrace(e);
    }
}
foo();
console.log(error);

但是它打印了一个我不理解的不同的堆栈跟踪。

使用printStackTrace方法的正确方式是什么?

EN

回答 2

Stack Overflow用户

发布于 2017-09-03 16:12:07

Try something like

代码语言:javascript
复制
  window.onerror = function(msg, file, line, col, error) {
    var callback = function(stackframes) {
      var stringifiedStack = stackframes.map(function(sf) {
        return sf.toString();
      }).join('\n');
      alert('msg: ' + msg + ' line: ' + line + ' col: ' + col + ' error: ' + error + ' file:' + file);
    };
    StackTrace.get().then(callback)
  };

工作示例:

代码语言:javascript
复制
window.onerror = function(msg, file, line, col, error) {
  StackTrace.fromError(error).then(callback).catch(errback);
}
var errback = function(err) { console.log(err.message);
};
var callback = function(stackframes) {
    var stringifiedStack = stackframes.map(function(sf) {
      return sf.toString();
    }).join('\n');  };
function fault() {

alert('Error will be invoked!')
  throw "Test Error"
};
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/stacktrace.js/2.0.0/stacktrace.js"></script>

<input id="a" type="button" value="Test Call!" onClick="fault();" />

但看起来他们有一个bug

票数 1
EN

Stack Overflow用户

发布于 2021-10-26 00:20:47

如果您使用的是stacktracejs 1.x,但无法使其正常工作,那么您可以这样使用它:

代码语言:javascript
复制
console.log( StackTrace.getSync() );

就这样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34001666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档