자바 튜토리얼

자바 홈 자바 소개 자바 시작하기 자바 구문 자바 주석 자바 변수 자바 데이터 유형 자바 타입 캐스팅 자바 연산자 자바 문자열 자바 수학 자바 부울 자바 If...Else 자바 스위치 자바 while 루프 자바 For 루프 자바 중단/계속 자바 배열

자바 메소드

자바 메소드 자바 메소드 매개변수 자바 메소드 오버로딩 자바 범위 자바 재귀

자바 클래스

자바 OOP 자바 클래스/객체 자바 클래스 속성 자바 클래스 메소드 자바 생성자 자바 수정자 자바 캡슐화 자바 패키지 / API 자바 상속 자바 다형성 자바 내부 클래스 자바 추상화 자바 인터페이스 자바 열거형 자바 사용자 입력 자바 날짜 자바 배열 목록 자바 링크드리스트 자바 해시맵 자바 해시셋 자바 반복자 자바 래퍼 클래스 자바 예외 자바 정규식 자바 스레드 자바 람다

자바 파일 처리

자바 파일 Java 파일 작성/쓰기 자바 읽기 파일 자바 삭제 파일

자바 방법

두 개의 숫자 더하기

자바 참조

자바 키워드 자바 문자열 메소드 자바 수학 메소드

자바 예제

자바 예제 자바 컴파일러 자바 연습 자바 퀴즈 자바 인증서


Java 예외 - Try...Catch


자바 예외

Java 코드를 실행할 때 프로그래머의 코딩 오류, 잘못된 입력으로 인한 오류 또는 기타 예측할 수 없는 다른 오류가 발생할 수 있습니다.

오류가 발생하면 Java는 일반적으로 중지되고 오류 메시지를 생성합니다. 이에 대한 기술 용어는 Java에서 예외 가 발생 합니다(오류 발생).


자바 시도 및 잡기

명령문을 사용하면 실행 되는 try동안 오류를 테스트할 코드 블록을 정의할 수 있습니다.

catch명령문을 사용하면 try 블록에서 오류가 발생할 경우 실행할 코드 블록을 정의할 수 있습니다.

try및 키워드 catch쌍으로 제공됩니다.

통사론

try {
  //  Block of code to try
}
catch(Exception e) {
  //  Block of code to handle errors
}

다음 예를 고려하십시오.

myNumbers[10] 이(가) 존재하지 않기 때문에 오류가 발생 합니다.

public class Main {
  public static void main(String[ ] args) {
    int[] myNumbers = {1, 2, 3};
    System.out.println(myNumbers[10]); // error!
  }
}

출력은 다음과 같습니다.

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
        at Main.main(Main.java:4)

오류가 발생하면 를 사용 try...catch하여 오류를 포착하고 일부 코드를 실행하여 처리할 수 있습니다.

예시

public class Main {
  public static void main(String[ ] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    }
  }
}

출력은 다음과 같습니다.

Something went wrong.

드디어

이 명령문을 사용하면 결과에 관계없이 finally뒤에 코드를 실행할 수 있습니다.try...catch

예시

public class Main {
  public static void main(String[] args) {
    try {
      int[] myNumbers = {1, 2, 3};
      System.out.println(myNumbers[10]);
    } catch (Exception e) {
      System.out.println("Something went wrong.");
    } finally {
      System.out.println("The 'try catch' is finished.");
    }
  }
}

출력은 다음과 같습니다.

Something went wrong.
The 'try catch' is finished.


던지기 키워드

throw명령문을 사용하면 사용자 지정 오류를 생성할 수 있습니다 .

문 은 예외 유형throw 과 함께 사용됩니다 . Java 에는 , , , 많은 예외 유형이 있습니다 .ArithmeticExceptionFileNotFoundExceptionArrayIndexOutOfBoundsExceptionSecurityException

예시

연령 이 18세 미만인 경우 예외를 throw합니다 ("액세스 거부됨" 인쇄). 연령이 18세 이상인 경우 "접근 허가됨"을 인쇄하십시오.

public class Main {
  static void checkAge(int age) {
    if (age < 18) {
      throw new ArithmeticException("Access denied - You must be at least 18 years old.");
    }
    else {
      System.out.println("Access granted - You are old enough!");
    }
  }

  public static void main(String[] args) {
    checkAge(15); // Set age to 15 (which is below 18...)
  }
}

출력은 다음과 같습니다.

Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
        at Main.checkAge(Main.java:4)
        at Main.main(Main.java:12)

나이 가 20 세인 경우 예외가 발생 하지 않습니다 .

예시

checkAge(20);

출력은 다음과 같습니다.

Access granted - You are old enough!

연습으로 자신을 테스트하십시오

연습:

아래 코드에서 오류를 처리하기 위해 누락된 부분을 삽입하십시오.

 {
  int[] myNumbers = {1, 2, 3};
  System.out.println(myNumbers[10]);
}  (Exception e) {
  System.out.println("Something went wrong.");
}