Изменения

Перейти к: навигация, поиск

Обработка ошибок и исключения

638 байт добавлено, 18:25, 10 июня 2014
try-catch-finally
Код, который может бросить исключения оборачивается в <code>try</code>-блок, после которого идут блоки <code>catch</code> и <code>finally</code> (Последний может быть опущен).
<font color=navy>'''try '''</font> { <font color=gray>// Код, который может сгенерировать исключение</font>
}
Сразу после блока проверки следуют после обработчики исключений, которые объявляются ключевым словом catch.
<font color=navy>'''try '''</font> { <font color=gray>// Код, который может сгенерировать исключение</font> } <font color=navy>'''catch'''</font>(Type1 id1) { <font color=gray>// Обработка исключения Type1</font> } <font color=navy>'''catch'''</font>(Type2 id2) { <font color=gray>// Обработка исключения Type2</font>
}
Блок <code>finally</code> удобен для закрытия файлов и освобождения любых других ресурсов. Код в блоке <code>finally</code> должен быть максимально простым. Если внутри блока <code>finally</code> будет брошено какое-либо исключение или просто встретится оператор <code>return</code>, брошенное в блоке <code>try</code> исключение (если таковое было брошено) будет забыто.
<font color=navy>'''<tt>import</tt>'''</font> java.io.IOException;
<font color=navy>'''<tt>public class ExceptionTest'''</tt> </font> ExceptionTest {
<font color=navy>'''<tt>public static void</tt>'''</font> main(<tt>String[]</tt> args) { <font color=navy>'''<tt>try</tt>'''</font> { <font color=navy>'''<tt>try</tt>'''</font> { <font color=navy>'''<tt>throw new </tt>''' </font>Exception(<font color=green>"a")</ttfont>); } <font color=navy>'''<tt>finally</tt>'''</font> { <font color=navy>'''<tt>throw new IOException</tt>'''</font> IOException(<font color=green>"b"</font>);
}
} <font color=navy>'''<tt>catch '''</tt></font> (IOException ex)</tt> { System.<font color=purple>'''''err'''''</font>.println(ex.getMessage()); } <font color=navy>'''<tt>catch '''</tt></font> (Exception ex)</tt> { System.<font color=purple>'''''err'''''</font>.println(ex.getMessage());
}
}
234
правки

Навигация