【发布时间】:2012-09-16 07:17:03
【问题描述】:
我正在尝试寻找或想办法在警报框中显示应用程序中所有未处理的 javascript 异常。我希望所有这些都在客户端完成,而不使用任何服务器端代码。我使用 MVC3 作为环境。
过去几天我一直在研究,但没有找到我正在寻找的确切内容。
我在下面找到了 2 种方法,它们看起来几乎就是我要寻找的,除了这些方法是设置的,因此您必须将函数名称传递给自定义方法以打印所有未处理异常的堆栈跟踪在该特定功能中。我正在寻找一种不必手动将函数名称传递给自定义方法的方法,该方法打印所有未处理异常的堆栈跟踪。我希望这些自定义方法只“监听”整个应用程序中所有未处理的异常。
http://eriwen.com/javascript/js-stack-trace/
也和上一个链接类似:
https://github.com/eriwen/javascript-stacktrace
这是上面第二个链接的基本代码,用于打印指定 javascript 函数的堆栈跟踪:
instrumentFunction: function (context, functionName, callback) {
context = context || window;
var original = context[functionName];
context[functionName] = function instrumented() {
callback.call(this, printStackTrace().slice(4));
return context[functionName]._instrumented.apply(this, arguments);
};
context[functionName]._instrumented = original;
}
function printStackTrace(options) {
options = options || {
guess: true
};
var ex = options.e || null,
guess = !! options.guess;
var p = new printStackTrace.implementation(),
result = p.run(ex);
return (guess) ? p.guessAnonymousFunctions(result) : result;
}
所以,总而言之,你们都知道有什么方法可以让某种“侦听器”来侦听所有 javascript 未处理的异常,然后在警报框中将它们打印到屏幕上吗?
谢谢! 杰森
【问题讨论】:
-
一件事......你为什么要使用警报框?!?你可以使用 console.log(error_message) 来......
-
我认为这个问题 Catch all JS errors 会帮助你
-
你可能应该看看这个问题:stackoverflow.com/questions/205688/…
标签: javascript