title: Is this a bad practice to catch a non-specific exception such as System.Exception? Why?
body: <p>I am currently doing a code review and the following code made me jump. I see multiple issues with this code. Do you agree with me? If so, how do I explain to my colleague that this is wrong (stubborn type...)?</p>
  
  <ul>
  <li>Catch a generic exception (Exception ex)</li>
  <li>The use of "if (ex is something)" instead of having another catch block</li>
  <li>We eat SoapException, HttpException and WebException. But if the Web Service failed, there not much to do.</li>
  </ul>
  
  <p>Code:</p>
  
  <pre><code>try
  {
      // Call to a WebService
  }
  catch (Exception ex)
  {
      if (ex is SoapException || ex is HttpException || ex is WebException)
      {
          // Log Error and eat it.
      }
      else
      {
          throw;
      }
  }
  </code></pre>