산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java catch 다중 예외

자바가 여러 예외를 포착

이 튜토리얼에서는 예제를 통해 Java에서 여러 예외를 처리하는 방법을 배웁니다.

Java 7 이전에는 코드 중복이 있더라도 다양한 유형의 예외에 대해 여러 예외 처리 코드를 작성해야 했습니다.

예를 들어보겠습니다.

예시 1:다중 catch 블록

class Main {
  public static void main(String[] args) {
    try {
      int array[] = new int[10];
      array[10] = 30 / 0;
    } catch (ArithmeticException e) {
      System.out.println(e.getMessage());
    } catch (ArrayIndexOutOfBoundsException e) {
      System.out.println(e.getMessage());
    } 
  }
}

출력

/ by zero

이 예에서는 두 가지 예외가 발생할 수 있습니다.

catch 중복 코드를 차단합니다.

할당 연산자 =의 연관성 오른쪽에서 왼쪽이므로 ArithmeticException 메시지 / by 0 과 함께 먼저 발생합니다. .

<시간>

catch 블록에서 여러 예외 처리

Java SE 7 이상에서는 이제 단일 catch에서 둘 이상의 예외 유형을 catch할 수 있습니다. 차단합니다.

catch에서 처리할 수 있는 각 예외 유형 블록은 수직 막대 또는 파이프 |를 사용하여 구분됩니다. .

구문은 다음과 같습니다.

try {
  // code
} catch (ExceptionType1 | Exceptiontype2 ex) { 
  // catch block
}

예시 2:멀티 캐치 블록

class Main {
  public static void main(String[] args) {
    try {
      int array[] = new int[10];
      array[10] = 30 / 0;
    } catch (ArithmeticException | ArrayIndexOutOfBoundsException e) {
      System.out.println(e.getMessage());
    }
  }
}

출력

/ by zero

단일 catch에서 여러 예외 잡기 블록은 코드 중복을 줄이고 효율성을 높입니다.

이 프로그램을 컴파일하는 동안 생성된 바이트코드는 catch가 여러 개 있는 프로그램보다 작습니다. 코드 중복이 없으므로 차단됩니다.

참고: catch인 경우 블록이 여러 예외를 처리하고 catch 매개변수는 암시적으로 final입니다. . 이는 catch 매개변수에 값을 할당할 수 없음을 의미합니다.

<시간>

기본 예외 잡기

단일 catch에서 여러 예외를 잡을 때 블록, 규칙은 전문화로 일반화됩니다.

즉, catch에 예외 계층이 있는 경우 블록을 사용하면 여러 특수 예외를 포착하는 대신 기본 예외만 포착할 수 있습니다.

예를 들어보겠습니다.

예시 3:기본 예외 클래스만 잡기

class Main {
  public static void main(String[] args) {
    try {
      int array[] = new int[10];
      array[10] = 30 / 0;
    } catch (Exception e) {
      System.out.println(e.getMessage());
    }
  }
}

출력

/ by zero

우리는 모든 예외 클래스가 Exception 수업. 따라서 여러 개의 특수 예외를 잡는 대신 Exception 수업.

<시간>

기본 예외 클래스가 이미 catch에 지정된 경우 블록, 동일한 catch에서 하위 예외 클래스를 사용하지 마십시오. 차단하다. 그렇지 않으면 컴파일 오류가 발생합니다.

예를 들어보겠습니다.

예제 4:기본 및 하위 예외 클래스 잡기

class Main {
  public static void main(String[] args) {
    try {
      int array[] = new int[10];
      array[10] = 30 / 0;
    } catch (Exception | ArithmeticException | ArrayIndexOutOfBoundsException e) {
      System.out.println(e.getMessage());
    }
  }
}

출력

Main.java:6: error: Alternatives in a multi-catch statement cannot be related by subclassing

이 예에서 ArithmeticExceptionArrayIndexOutOfBoundsException 둘 다 Exception의 하위 클래스입니다. 수업. 따라서 컴파일 오류가 발생합니다.


java

  1. 자바 연산자
  2. 자바 주석
  3. 자바 for-each 루프
  4. 자바 문자열
  5. 자바 인터페이스
  6. 자바 익명 클래스
  7. 자바 시도 ... 캐치
  8. 자바 던지기 및 던지기
  9. 자바 리소스 사용
  10. 자바 주석