Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaで複数のcatchブロックを持つtryブロックを定義できますか?


はい、Javaで複数のcatchブロックを含む1つのtryブロックを定義できます。

  • すべての試行は、少なくとも1つのキャッチブロックに関連付ける必要があり、関連付ける必要があります。
  • tryブロックで例外オブジェクトが識別され、複数のcatchブロックがある場合は常に、catchブロックが定義された順序に基づいてcatchブロックの優先順位が与えられます。
  • 常に最初のキャッチブロックが最優先されます。最初のcatchブロックが識別された例外オブジェクトを処理できない場合、すぐ次のcatchブロックが考慮されます。

class TryWithMultipleCatch {
   public static void main(String args[]) {
      try{
         int a[]=new int[5];
         a[3]=10/0;
         System.out.println("First print statement in try block");
      } catch(ArithmeticException e) {
         System.out.println("Warning: ArithmeticException");
      } catch(ArrayIndexOutOfBoundsException e) {
         System.out.println("Warning: ArrayIndexOutOfBoundsException");
      } catch(Exception e) {
         System.out.println("Warning: Some Other exception");
      }
      System.out.println("Out of try-catch block");
   }
}

出力

Warning: ArithmeticException
Out of try-catch block

  1. キャッチにreturnステートメントを含めることはできますか、それともJavaで最後にブロックすることはできますか?

    はい、catchとfinallyブロックでメソッドのreturnステートメントを記述できます。 メソッドに戻り型があり、条件に基づいてメソッドの任意の部分で何らかの値を返すことができる状況があります。 catchブロックに値を返し、メソッドの最後に値を返すことができる場合、コードは正常に実行されます。 catchブロックに値を返し、値を返した後にメソッドの最後にステートメントを記述できる場合、コードは実行されないため、Javaが到達不能コードをサポートしていないことがわかっているため、到達不能コードになります。 最後のブロックで値を返し、メソッドの最後に戻り値を保持する必要がない場合。

  2. Javaでcatchブロックなしのtryブロックを使用できますか?

    はい、finalブロックを使用することで、catchブロックなしでtryブロックを作成できます。 ご存知のとおり、tryブロックで例外が発生した場合でも、System.exit()が常に実行されることを除いて、finalブロックは常に実行されます。 例1 public class TryBlockWithoutCatch {    public static void main(String[] args) {       try {          System.out.println(&q