title: How to log exceptions in JavaScript
body: <p>As a C# developer I'm used to the following style of exception handling:</p>
  
  <pre><code>try
  {
      throw SomeException("hahahaha!");
  }
  catch (Exception ex)
  {
      Log(ex.ToString());
  }
  
  Output
  ------
  
  SomeNamespace.SomeException: hahahaha!
      at ConsoleApplication1.Main() in ConsoleApplication1\Program.cs:line 27
  </code></pre>
  
  <p>Its really simple, and yet tells me everything I need to know about what the exception was and where it was.</p>
  
  <p>How do I achieve the equivalent thing in JavaScript where the exception object itself might just be a string. I really want to be able to know the exact line of code where the exception happened, however the following code doesn't log anything useful at all:</p>
  
  <pre><code>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]
  </code></pre>
  
  <p><strong>EDIT</strong> (again): Just to clarify, this is for  internal application that makes heavy use of JavaScript. I'm after a way of extracting useful information from JavaScript errors that may be caught in the production system - I already have a logging mechanism, just want a way of getting a sensible string to log.</p>