作为一名 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 错误中提取有用信息的方法——我已经有了一个日志记录机制,只需要一种获取合理字符串进行记录的方法。
原文由 Justin 发布,翻译遵循 CC BY-SA 4.0 许可协议
您几乎可以以相同的方式使用,即。
但是,如果您想获取引发错误的行号和文件名,我想没有跨浏览器解决方案。消息和名称是错误对象的唯一标准属性。在 mozilla 中,您还有 lineNumber 和 fileName 属性。