<p>
Nesting <code>try-catch</code> blocks severely impacts the readability of source code because it makes it to difficult to understand which block will catch which exception.
</p>

<p>The following code:</p>

<pre>
try {
  try {                                     // Non-Compliant
    doSomething();
  } catch (RuntimeException e) {
    /* Ignore */
  }

  doSomethingElse();
} catch (Exception e) {
  /* ... */
}
</pre>

<p>should be refactored into:</p>

<pre>
try {
  dedicatedMethod();                        // Compliant
  doSomethingElse();
} catch (Exception e) {
  /* ... */
}

/* ... */

private void dedicatedMethod() {
  try {                                     // Compliant
    doSomething();
  } catch (RuntimeException e) {
    /* Ignore */
  }
}
</pre>