[java] 예외처리 Exception Handling
예외처리
Exception Handling
-
정의
- 프로그램 실행 시 발생할 수 있는 예외에 대비한 코드를 작성하는 것
-
목적
-
프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것
-
error 분류
-
컴파일 에러
- 컴파일 시에 발생하는 오류
- 구문 오류
-
논리적 에러
- 실행은 되지만, 의도와 다르게 동작하는 것
-
런타임 에러
-
자바프로그램(실행파일)이 실행하는 동안 발생하는 오류
-
에러(error)
- 프로그램 코드에 의해서 수습될 수 없는 심각한 오류
- JVM영역에서 발생하는 오류로 심각한 오류
- 프로그램 실행을 JVM이 강제 종료
-
예외(exception)
-
프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
-
프로그램 영역에서 발생하는 오류로 다소 가벼움
- 기본 : JVM이 강제로 프로그램 실행 종료
- 예외처리라는 구문을 이용하여 중단하지않고 계속해서 프로그램 실행 진행
- 중단하더라도 적당한 (오류)메시지를 출력
- 즉, 예외는 조정이 가능함
- 프로그램의 비정상적인 종료를 막기 위해서
-
2가지의 예외
-
런타임 예외
- 예외처리 선택적
-
일반 예외
- 예외처리 필수적
-
-
-
-
예외처리 구문
-
예외 처리(exception handling)
- try / catch / finally
-
try, catch : 무조건 쌍으로 사용
- try 블록 : 기본적으로 맨 먼저 실행되는 코드로 여기에서 발생한 예외는 catch 블록에서 처리됨
- catch 블록 : try 블록에서 발생한 예외 코드나 예외 객체를 인수로 전달받아 그 처리를 담당함.
-
finally : 예외처리 후 항상 수행
- finally 블록 : 이 블록은 try 블록에서 예외가 발생하건 안 하건 맨 마지막에 무조건 실행됨
-
try에 종속 (catch, finally)
-
‘알린다.’
//적함한 try 구문 1. try / catch 2. try / finally 3. try / catch / ... / finally
-
-
throws (예외 회피하기)
- throws 키워드를 사용하여 해당 메소드를 사용할 떄 발생할 수 있는 예외를 미리 명시함
- 소극적인 예외 처리
- 이 메소드를 호출한 또 다른 메소드를 호출 하겠다.
- ‘잡는다’
- try / catch / finally
-
발생
- throw (예외 발생시키기)
- throw 키워드를 사용하여 강제로 예외를 발생시킴
- 예외를 발생 시키는 부분
- ‘던져준다’
- throw (예외 발생시키기)