1. 예외처리(Exception handling)
1.1 프로그램 오류
- 컴파일 에러 : 컴파일 시에 발생하는 에러
- 런타임 에러 : 실행 시에 발생하는 에러
- 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것
- 에러(error) : 프러그램 코드에 의해서 수습될 수 없는 심각한 오류
ex. 메모리 부족(OutOfMemory Error), 스택오버플로우(StackOverflowError), ...
- 예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류
1.2 예외 클래스의 계층구조
- RuntimeException클래스와 그 자손클래스들 : 프로그래머의 실수로 발생하는 예외
- Exception클래스들 : 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외
1.3 예외처리하기 -try -catch
예외처리(exception handleing)
- 정의 : 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것
- 목적 : 프로그램의 비정상 종료를 막고, 정상적인 실행상태를 유지하는 것
※ try-catch문에서의 흐름
- try블럭 내에서 예외가 발생한 경우,
1. 발생한 예외와 발생한 경우,
2. 일치하는 catch블럭을 찾게 되면, 그 catch블럭 내의 문장들을 수행하고 전체 try-catch문을 빠져나가서 그 다음 문장을 계속해서 수행한다.
- try블럭 내에서 예외가 발생하지 않는 경우,
1. catch블럭을 거치지 않고 전체 try-catch문을 빠져나가서 수행을 계속한다.
1.4 예외 발생시키기
키워드 throw를 사용해서 프로그래머가 고의로 예외를 발생시킬 수 있으며, 방법은 아래의 순서를 따르면 된다.
1. 먼저, 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든 다음
- Exception e = new Exception("고의로 발생시켰음");
2. 키워드 throw를 이용해서 예외를 발생시킨다.
- throw e;
1.5 finally 블럭
finally블럭은 try-catch문과 함께 예외의 발생여부에 상관없이 실행되어야할 코드를 포함시킬 못적으로 사용된다.
- try -> catch -> finally 순으로 실행
1.6 자동 자원 변환 - try- with-resource문
JDK1.7부터 try-with-resource문이라는 try-catch문의 변형이 새로 추가되었다. 이 구문은 주로 입출력(I/O)과 관련된 클래스를 사용할 대 유용하다. 주로 입출력에 사용되는 클래스 중에서는 사용한 후에 꼭 닫아 줘야 하는 것들이 있다. 그래야 사용했던 자원(resource)이 반환되기 때문이다.
1.7 사용자정의 예외 만들기
기존의 정의된 예외 클래스 외에 필요에 따라 프로그래머가 새로운 예외 클래스를 정의하여 사용할 수 있다. 보통 Exception클래스로부터 상속받는 클래스를 만들지만, 필요에 따라서 알맞은 예외 클래스를 선택할 수 있다.
'Java > 기초' 카테고리의 다른 글
[Java] 날짜와 시간 & 형식화 (0) | 2020.10.02 |
---|---|
[Java] java.lang패키지와 유용한 클래스1 (0) | 2020.09.11 |
[Java] 객체지향 프로그래밍 5 (0) | 2020.08.30 |
[Java] 객체지향 프로그래밍 4 (0) | 2020.07.19 |
[Java] 객체지향 프로그래밍 3 (0) | 2020.07.12 |