title: Why Re-throw Exceptions?
body: <p>I've seen the following code many times:</p>
  
  <pre><code>try
  {
      ... // some code
  }
  catch (Exception ex)
  {
      ... // Do something
      throw new CustomException(ex);
  
      // or
      // throw;
  
      // or
      // throw ex;
  }
  </code></pre>
  
  <p>Can you please explain the purpose of re-throwing an exception? Is it following a pattern/best practice in exception handling? (I've read somewhere that it's called "Caller Inform" pattern?)</p>