java 7使得我們能夠在同一個catch語句塊中捕獲多種不同的異常,這也叫做多重異常捕獲。
在java7以前,我們可能要這樣做:
<code>01</code>
<code>try</code> <code>{</code>
<code>02</code>
<code>03</code>
<code> </code><code>// execute code that may throw 1 of the 3 exceptions below.</code>
<code>04</code>
<code>05</code>
<code>} </code><code>catch</code><code>(sqlexception e) {</code>
<code>06</code>
<code> </code><code>logger.log(e);</code>
<code>07</code>
<code>08</code>
<code>} </code><code>catch</code><code>(ioexception e) {</code>
<code>09</code>
<code>10</code>
<code>11</code>
<code>} </code><code>catch</code><code>(exception e) {</code>
<code>12</code>
<code> </code><code>logger.severe(e);</code>
<code>13</code>
<code>}</code>
正如上面看到的,sqlexception 和ioexception 這兩個異常都是以相同的方式來處理的,但是你仍然要為這兩個異常寫兩個獨立的catch語句塊。
java 7中你可以像下面這樣捕獲多個異常:
<code>} </code><code>catch</code><code>(<strong>sqlexception | ioexception e</strong>) {</code>
注意,第一個catch語句塊中的兩個異常名字是被管道字元|分割的。兩個異常類名之間的管道字元就是在同一個catch語句塊中聲明多個異常的方法。