Как разработчик С#, я использую следующий стиль обработки исключений:
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, которые могут быть пойманы в производственной системе - у меня уже есть механизм ведения журнала, просто хочу получить разумную строку для регистрации.