title: SonarQube error: Refactor this method to throw at most one checked exception
body: <p>I am using SonarQube and it shows the following error:</p>
  
  <pre><code>Public methods should throw at most one checked exception.
  
  // Noncompliant
  public void delete() throws IOException, SQLException { /* ... */ }
  
  // Compliant
  public void delete() throws SomeApplicationLevelException { /* ... */ }
  </code></pre>
  
  <p>Does this means, <code>SomeApplicationLevelException</code> is a parent class and <code>IOException</code> and <code>SQALException</code> are derived from it? And we should throw the parent class exception? Thereby adhering to method throwing only 1 checked exception?</p>
  
  <p>Because I have 2 exceptions that i have defined say for example <code>Exception1</code> and <code>Exception2</code> that extend <code>Exception</code>. And my method say, <code>sampleMethod()</code> throws them i.e,</p>
  
  <pre><code>public void sampleMethod() throws Exception1, Exception2 {
  }
  </code></pre>
  
  <p>And the error is shown here. So should I have one class as parent (say <code>MainException</code>) and derive <code>Exception1</code> and <code>Exception2</code> from it and throw parent exception class? Like below:</p>
  
  <pre><code>public void sampleMethod() throws MainException {
  }
  </code></pre>
  
  <p>Is the above solution proper?</p>