更好的方法来重新抛出错误调试javascript在Chrome
Better way to rethrow errors for debugging javascript in Chrome
Chrome调试工具大多数时候都很棒,但最近我对重新抛出的错误感到恼火。似乎没有任何方法可以查看调用堆栈,除非您将其设置为在捕获异常时暂停,但随后您会遇到来自其他库的大量错误。如果你想很好地显示错误,那么在异常上暂停是毫无用处的。
考虑这个例子(http://jsfiddle.net/redbmk/83y8L/1/):
)HTML:<button id="push-me"></button>
Javascript: function beDangerous() {
var one = 1, rand = parseInt(Math.random() * 2);
if (rand === one) console.log("You Win");
else if (rand === zero) console.log("You Lose");
}
function warnUser(error) {
alert("Hey, something went wrong! Refresh the page");
throw error;
}
function runCode() {
try {
beDangerous();
} catch (e) {
warnUser(e);
}
}
document.getElementById("push-me").addEventListener("click", runCode);
当您遇到错误时,调用堆栈显示warnUser
抛出错误并由runCode
调用。没有办法将其追溯到beDangerous并查看当时的变量是什么。您可以看到堆栈跟踪,但只能通过查看error.stack
,这不会给您任何上下文。用debugger
替换throw error
似乎没有帮助(并且不允许您关闭调试)。
有更好的方法吗?这件事已经困扰我有一段时间了。
顺便说一下,这个问题说要抛出error.stack
,但这对我不起作用(正如我所理解的,stack
属性是非标准的,所以这对其他浏览器来说是不正确的)。这个问题说这是Chrome浏览器中一个已知的错误,在版本19中被标记为已修复,但我在版本35中发生了这种情况。
这是一个不同的,但也是已知的错误在Chrome,不幸的是,它被标记为非修复。看起来火狐开发工具也有同样的问题
相关文章:
- 如何调试Javascript代码或函数
- 在vs.net 2010中调试JavaScript代码
- 在chrome控制台上调试javascript函数
- 如何使用gulp-test和karma在浏览器中调试Javascript测试文件
- 如何在命令行中运行/调试javascript
- 在与WebPack捆绑的Visual Studio中调试JavaScript代码
- 是否有可能在 WebBrowser 控件中调试 JavaScript 代码
- Intellij idea远程调试javascript
- 我可以在谷歌脚本编辑器(谷歌应用程序脚本)中调试JavaScript代码吗
- asp.net我无法在脚本部分调试javascript
- 语法错误,但无法调试JavaScript原型
- 使用PowerShell将VS2010附加到IE9以调试javascript
- 调试Javascript时如何在PHPStorm中输出到控制台
- 1个错误弹出窗口.试过调试javascript,想过放弃
- 使用Just My Code在Visual Studio 2013中调试Javascript
- 如何调试 JavaScript 闭包
- 如何使用 Netbeans 调试 JavaScript 代码
- 在 PHP 项目中的 netbeans 7.4 中调试 Javascript
- 无法在 Visual Studio 2013 和 IE 11 中调试 JavaScript
- 调试 JavaScript 按钮