IT이야기/JAVA

[자바의 정석] Chapter8. 예외처리

FelixShin 2016. 5. 6. 01:47
반응형

1. 프로그램 오류 - 크게 2종류로 나뉨

1) 컴파일 에러 : 컴파일시 발생

       2) 런타임 에러 : 실행시 발생


2. 에러와 예외의 정의

1) 에러(Error) : 프로그램에서 수습될 수 없는 심각한 오류

2) 예외(Exception) : 프로그램에서 수습될 수 있는 다소 미약한 오류



3. 예외 처리 방법

: try - catch 구문을 활용



4. 예외 발생시키기

1) new 연산자를 이용해 발생시키려는 예외 클래스 객체를 만듦

2) throw e를 이용해 예외 발생시킴


# 아래와 같이 발생할 수 있다. 참고로 1번 처럼 객체를 만든후 throw를 따로 해줄 수 있고, 

2번처럼 한줄에 객체 생성 및 throw까지 할 수 있음




5. 예외 클래스의 계층구조

1) RuntimeException 클래스들 : 프로그래머의 실수로 발생하는 예외

2) Exception 클래스들 : 외적인 요인에 의해 발생하는 예외




6. finally 블럭

: finally내용은 예외 발생 여부와 관계없이 실행된다.

1) 예외 발생시 : try - catch - finally 순으로 실행

2) 예외 미발생시 : try - finally 순으로 실행


구문 ex)


try{

//예외 발생할 가능성이 있는 문장을 넣음

}catch(Exception ex){

//예외처리를 위한 문장 넣음

} finally{

//예외 발생에 관계없이 항상 수행되어야 하는 문장들을 넣음

}



7. catch 추가 내용

1)  Exception 참조 변수

: printStackTrace() : 예외발생시 호출스택(Call Stack)에 있던 메서드 정보와 예외 메시지를 화면에 출력

: getMessage(): 발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있음

2) 메소드에 예외 선언 가능

: 메소드에 예외 선언을 하면 예외를 호출한 메서드로 전달함 (호출한 메서드에서 예외처리를 해야할 때 사용)


ex)

public void testMethod() throws Exception1, Exception2{

//메서드 내용

}



8. Custom 예외 만들기

1) 예외클래스를 상속받아 새로운 예외클래스 정의 가능