title: Setting the message of a custom Exception without passing it to the base constructor
body: <p>I want to make a custom Exception in C#, but in theory I do need to do a little parsing first before I can make a human readable ExceptionMessage.</p>
  
  <p>The problem is that the orginal Message can only be set by calling the base constructor of <code>Messsage</code>, so I can't do any parsing in advance.</p>
  
  <p>I tried overring the Message property like this:</p>
  
  <pre><code>public class CustomException : Exception
  {
      string _Message;
  
      public CustomException(dynamic json) : base("Plep")
      {
          // Some parsing to create a human readable message (simplified)
          _Message    = json.message;
      }
  
      public override string Message
      {
          get { return _Message; }
      }
  }
  </code></pre>
  
  <p>The problem is that the Visual Studio debugger still shows the message that I've passed into the constructor, <em>Plep</em> in this case. </p>
  
  <pre><code>throw new CustomException( new { message="Show this message" } )
  </code></pre>
  
  <p>results in:</p>
  
  <p><img src="https://i.stack.imgur.com/qsjgK.png" alt="Visual Studio Exception Dialog"></p>
  
  <p>If I leave the base constructor empty it will show a very generic message:</p>
  
  <p><em>An unhandled exception of type 'App.CustomException' occurred in App.exe</em></p>
  
  <p><strong>Question</strong></p>
  
  <p>It looks like the Exception Dialog reads some field/property that I don't have any access too. Is there any other way to set a human readable error message outside the base constructor on Exception.</p>
  
  <p>Note that I'm using Visual Studio 2012.</p>