<div dir="ltr">Hello,<div><br></div><div>I noticed that a bunch of methods in JDK library have more than one head node in their exceptional unit graphs. With a more careful examination, I noticed that in all cases the methods are in one of this form:</div><div><br></div><div><div>static {</div><div>    try {</div><div>       I1; ...; In;</div><div>     } catch (...) {</div><div>       J1; ...; Jn;</div><div>     }</div><div>}</div></div><div><br></div><div>or</div><div><br></div><div>modifiers return-type method-name() {</div><div>    try {</div><div>       I1; ...; In;</div><div>     } catch (...) {</div><div>       J1; ...; Jn;</div><div>     }</div><div>}</div><div><br></div><div>or</div><div><br></div><div><div>modifiers return-type method-name() throws-clause  {</div><div>    try {</div><div>       I1; ...; In;</div><div>     } catch (...) {</div><div>       J1; ...; Jn;</div><div>     }</div><div>}</div></div><div><br></div><div>In which the heads become the instructions I1 and J1!</div><div><br></div><div>Does that mean that the methods have multiple entries? Is that a bug?</div><div><br></div><div>Can anyone explain, please?</div><div><br></div><div>Thank you.</div><div>PS: Similarly, once you construct exceptional unit graph for a method, many of tails are not actually tails (e.g. when you throw an exception and immediately catch it in a try-catch-block).</div></div>