Java では、例外をスローする可能性のあるステートメントはすべて try...catch でキャッチできます。例外を引き起こす可能性のあるステートメントを try { ... } に配置し、catch を使用して対応する例外とそのサブクラスをキャプチャします。
#複数の catch ステートメント
複数の catch ステートメントを使用でき、各 catch は対応する例外とそのサブクラスをキャプチャします。 JVM は例外をキャッチした後、catch ステートメントを上から下に照合し、特定の catch に照合した後、catch コード ブロックを実行し、その後照合を継続しません。 (推奨学習:Java Course )
単純にPut:複数のキャッチステートメントの1つのみを実行できます。例:public static void main(String[] args) { try { process1(); process2(); process3(); } catch (IOException e) { System.out.println(e); } catch (NumberFormatException e) { System.out.println(e); } }複数のキャッチがある場合、キャッチの順序は非常に重要です。サブクラスを最初に記述する必要があります。例:
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (IOException e) { System.out.println("IO error"); } catch (UnsupportedEncodingException e) { // 永远捕获不到 System.out.println("Bad encoding"); } }上記のコードの場合、UnsupportedEncodingException 例外は IOException のサブクラスであるため、キャッチすることはできません。 UnsupportedEncodingException 例外がスローされると、catch (IOException e) { ... } によってキャッチされ、実行されます。
したがって、正しい書き方はサブクラスを最初に置くことです:
public static void main(String[] args) { try { process1(); process2(); process3(); } catch (UnsupportedEncodingException e) { System.out.println("Bad encoding"); } catch (IOException e) { System.out.println("IO error"); } }
以上がJavaで例外をキャッチする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。