개발노트/Java

[Java] 예외 처리

Dahoon06 2021. 4. 2. 22:09
728x90
반응형

예외 처리를 하는 이유

=> 예외가 떨어지게 되면 실행중이던 프로그램은 강제 종료가 된다.

하지만 예외 처리를 하게 되면 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다.

 

 

모든 예외 클래스는 java.lang.Exception클래스를 상속받는다.

 

 

예외는 일반 예외(Exception)와 실행예외 (Runtime Exception)이 있다.

 

일반 예외 => 컴파일 체크 예외. 자바 소스를 컴파일 하는 과정에서 예외처리가 필요한지 검사, 불필요하다면 컴파일 에러

 

실행 예외 => 자바 컴파일러가 체크 하지 않음. 개발자가 하는 예외 처리 

    | |  실행 예외들

NullPointerException : 객체 참조가 없는 상태.(객체가 없는 상태에서 사용할 때 나오는 예외)

ArrayIndexOutOfBoundsException : 배열에서 인엑스 범위를 초과하여 사용할 경우 나오는 예외

NumberFormatException : 문자열로 되어있는 데이터를 숫자로 변경실킬 때 자주 나오는 예외

ClassCastException : 클래스의 타입을 강제로 변환(Casting)을 시도 할 경우

 

 


예외 처리

try ~ catch ~ final

 

try {

   예외가 필요한 실행 코드

} catch( 예외 변수) {    // 다중 catch 사용 가능

   떨어진 예외 표시

} final {  // final은 생략 해도된다. (예외 발생 여부와 상관없이 항상 실행할 내용이 있을 경우에 사용)

이 안에는 주로 사용한 메소드 끝낼 때

}

 

 

예외 던지기

메소드 선언부에 throws 예외1, 예외2.....{  }

메소드를 호출한 쪽으로 예외를 넘기는 역할.

 

public static void main(String[] args) throws Exception {    }  

// 메인 메소드의 경우 다른 클래스에서 메인 메소드를 호출하지 않기 때문에 throws를 사용한 것이고 

 

: 일반 클래스는 선언부에 예외처리하면 호출 할때마다 매번 예외처리를 해야하므로 예외를 내부에다 작성한다.

 

throws 키워드가 붙은 메소드는 반드시 try ~ catch 구문 내부에서 호출해야 한다. catch 부분에는 던져진 예외를 잡고..

728x90
반응형

'개발노트 > Java' 카테고리의 다른 글

[Java] File Class  (0) 2021.03.19
[Java] method  (0) 2021.03.19
[Java] String Method  (0) 2021.03.17
[Java] 배열과 ArrayList  (0) 2021.03.17
[Java] 보수  (0) 2021.02.20