오늘의 요약
1. 예외 처리
(1) 예외( Exception )
프로그램이 정상적으로 진행되지 못하게 하는 '돌발 상황'
ex) 숫자가 아닌 형태의 문자를 숫자로 바꾸려할 때
채팅하다가 상대방이 나가버린 경우
온라인 게임하고 있는데 게임 서버가 다운된 경우
- 게임서버가 다운된 경우
- 전원케이블이 빠짐
- 번개가 쳐서 집안 전기 끊김
(2) 예외처리 목적
프로그램 진행 시 발생할 수 있는 '돌발상황'을 예외로 '미리 정해놓고',
해당하는 예외가 발생했을 경우 적절한 조치를 취해서,
프로그램이 '정상적으로 작동'하도록 하는 것
(3) 계층도
Object
|
Throwable
| |
Error Exception
| |
CompileException RuntimeException
(CheckedException)
(4) 특징
1) throw 로 예외를 발생시킴
2) throws 로 에외발생 가능성을 표식할 수 있음 (==떠넘길 수 있음)
3) try catch 로 잡을 수 있음 (==적극적으로 때려잡음)
4) 생성자나 메소드에서만 발생할 수 있음
5) 상위 Exception 으로도 처리가 가능
* 모든 예외는 Exception 이라는 클래스로 잡을 수 있음
(5) 처리방법 ( ***** )
1) 때려 잡는 법
try{
예외발생구문(생성자 or 메소드)
}catch(예외타입 예외객체){
처리 로직
}
2) 떠넘기는 법
throws 예외타입
* 계속 떠넘기다보면 jvm이 처리한다
(6) try절 안에 2개 이상의 예외가 발생
1) 예외들이 상속관계 O
[순서존재] 하위(자식)예외부터 잡아줌
catch(MyException me)
catch(Exception e)
2) 예외들이 상속관계 X
[순서존재X] 아무예외나 먼저 잡아주면 됨
catch(MyException me)
catch(YourException ye)
(7) 2개 이상의 예외를 떠넘길 때
(ex: throws MyException, YourException, ... )
(8) finally 절
* 써도 되고 안 써도 되는 옵션이다.
1) 항상 수행되는 절
(심지어, return 을 만나더라도 수행하고 return 된다)
2) try 절이 나오면
catch 절이 나오거나, finally 절이 나오거나
아니면, 둘다 나오거나 해야 함
3) 얘는 못 이김
System.exit(-1);
System.exit(0);