gpt4 book ai didi

javascript - 如何在 JavaScript 中记录异常

转载 作者:行者123 更新时间:2023-12-03 00:39:10 24 4
gpt4 key购买 nike

作为一名 C# 开发人员,我习惯了以下异常处理方式:

try
{
throw SomeException("hahahaha!");
}
catch (Exception ex)
{
Log(ex.ToString());
}

Output
------

SomeNamespace.SomeException: hahahaha!
at ConsoleApplication1.Main() in ConsoleApplication1\Program.cs:line 27

它非常简单,但却告诉了我需要知道的关于异常是什么以及异常在哪里的所有信息。

如何在 JavaScript 中实现等效的功能,其中异常对象本身可能只是一个字符串。我真的希望能够知道发生异常的确切代码行,但是以下代码根本不记录任何有用的内容:

try
{
var WshShell = new ActiveXObject("WScript.Shell");
return WshShell.RegRead("HKEY_LOCAL_MACHINE\\Some\\Invalid\\Location");
}
catch (ex)
{
Log("Caught exception: " + ex);
}

Output
------

Caught exception: [object Error]

编辑(再次):澄清一下,这是针对大量使用 JavaScript 的内部应用程序。我正在寻找一种从生产系统中可能捕获的 JavaScript 错误中提取有用信息的方法 - 我已经有了一个日志机制,只是想要一种获取合理字符串进行日志记录的方法。

最佳答案

您没有指定您是在浏览器还是服务器中工作。如果是前者,则有一个新的 console.error方法和e.stack属性:

try {
// do some crazy stuff
} catch (e) {
console.error(e, e.stack);
}

请记住,该错误适用于 Firefox 和 Chrome,但这不是标准的。一个简单的示例,如果没有 e.stack,将降级到 console.log 并记录 e:

try {
// do some crazy stuff
} catch (e) {
(console.error || console.log).call(console, e.stack || e);
}

关于javascript - 如何在 JavaScript 中记录异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1238000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com