• 회원가입
  • 로그인
  • 구글아이디로 로그인

[class] Java - Exceptions (= Try...Catch..) - 에러 제어 (= 익셉션 = 트라이...캐치... 구문) ※ 트라이캐치구문

1,375  
목차
  1. Exceptions (익셉션) 정의
  2. try...catch... 구문
  3. finally 구문
  4. throw 키워드

 

Exceptions (익셉션) 정의

 

에러는 (의도적, 잘못 입력, 예측 불가 등) 여러 요인으로 생기는데,

Java는 프로그램 실행 중 에러 발생 시 멈춘 후 에러 메세지를 생성.

즉, 정상적 실행의 예외적 경우 (= 오류)를 다루는 기술을 의미함.

 

 

try...catch... 구문

[구문]

 

try {

  //  테스트 할 실행 코드

}

catch(Exception e) {

  //  에러 발생 시 실행할 코드

}

 

PS. try...catch... 구문은 쌍으로 함께 사용.


[에러 발생 시, try...catch... 구문으로 처리 안 하는 경우]

: Java의 기본 에러메세지가 그대로 노출됨. 

 

[예제] Hz.java

public class Hz {

  public static void main(String[] args) {

    int[] nums = {1, 2, 3};

    System.out.println(nums[5]); // 에러 유발.

  }

}

 

결과값:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 3

at Hz.main(Hz.java:4) 


[에러 발생 시, try...catch... 구문으로 처리하는 경우]

: 에러 발생 시, 사용자 정의 에러 메세지 출력 가능.

 

[예제] Hz.java

public class Hz {

  public static void main(String[] args) {

    try {

      int[] nums = {1, 2, 3};

      System.out.println(nums[5]);

    } catch (Exception e) {

      System.out.println("뭔가 에러 발생.");

    }

  }

}

 

결과값: 뭔가 에러 발생.

 

finally 구문

 

try...catch...구문 결과와 무관하게 그 이후에 실행할 코드 정의.

 


[예제] Hz.java

 

public class Hz {

  public static void main(String[] args) {

    try {

      int[] nums = {1, 2, 3};

      System.out.println(nums[5]);

    } catch (Exception e) {

      System.out.println("뭔가 에러 발생.");

    } finally {

      System.out.println("'try...catch...' 구문 종료.");

    }

  }

}

 

 

throw 키워드

 

사용자 지정 오류 생성.

 


 

 



분류 제목
method Java - Method Overloading (메서드 오버로딩) ★
method Java - Scope (유효범위) - 변수 효력범위
method Java - Recursion (재귀)
class Java - OOP (객체 지향 프로그래밍)
class Java - Class (클래스) / Object (객체)
class Java - Class Attribute (클래스 속성)
class Java - Class Methods (클래스 메서드)
class Java - Constructors (생성자)
class Java - Modifiers (수정자) - 접근제어자
class Java - Encapsulation (캡슐화) ※ Getter (게터) / Setter (세터)
class Java - Packages (패키지) / API
class Java - Inheritance (상속)
class Java - Polymorphism (다형성)
class Java - Inner Classes (내부 클래스)
class Java - Abstraction (추상화)
class Java - interface (인터페이스) ★
class Java - enums (이넘) - 상수 열거형 클래스
class Java - User Input (사용자 입력) - Scanner (스캐너) ★★★
class Java - Date/Time (날짜/시간)
class Java - ArrayList (어레이리스트) - 랜덤 접근 최적화 된 유사 배열
2/10
목록
찾아주셔서 감사합니다. Since 2012