- Exception : 예외
- 예외가 발생할지 안 할지는 모르지만 미리 예외를 예측하고
예외처리를 해줌으로써 예외가 발생했을때 프로그램이 멈추지 않고
끝까지 실행될 수 있도록 하는 것.
- 예외의 종류
1) 체크예외
: 컴파일에서 오류가 난다. 그래서 반드시 예외처리가 필수 !!
2) 비체크 예외 - RuntimeException
: 컴파일은 성공하지만 실행도중에 발생하는 예외이다.
: 예외처리를 개발자 선택적으로 할 수 있다.
: 개발자의 경험과 역량이 필요한 부분이다 !
- 예외를 처리하는 방법 !!
1) 직접처리 - try, catch
2) 던지기 - throws
1) 직접처리 방법
try {
예외발생 가능성이 있는 코드 작성;
1.
2.
3.
4.
}catch(XxxxException 변수이름){
// 예외가 발생했을때 해야할 일 작성 !!!
}catch(XxxException 변수이름){
}catch(XxxxException 변수이름){
}....
* catch블럭은 여러개 작성할 수 있다.
주의사항 : catch 블럭을 여러개 작성할때는 반드시 서브클래스예외부터 작성한다 !!
try{
}catch(Exception e){
} .....
catch(Exception e){
}
-Exception의 상속관계
Object --- Throwable - Exception - RuntimeException
체크 Exception
Error (예외처리 할 수 없는 치명적인 오류)
- finally 블럭 !!!
: 예외발생여부와 상관없이 무조건 해야할 일이 있을때 작성한다.
ex) IO 또는 JDBC할때
- IO : 생성 -> 읽기 또는 쓰기 -> 닫기
- JDBC : 로드 -> 연결 -> 실행 -> 닫기
ex)
try{
1.로드
2.연결
3.실행
4.닫기
}catch(){SQLException e){
}finally{
4.닫기
}
--------------------------------------------------------------------------------
try는 반드시 catch 또는 finally블럭과 함께 사용한다.
try{
}catch(XxxException e){
}
===============================================
try{
}catch(XxxxExcerption e){
}finally{
}
==============================================
try{
}finally{
}
----------------------------------------------------------------
throws를 사용하는 이유 ????
: 예외를 한번에 모아서 처리 하기위해서 ...
: 메소드를 만들어서 제공하는 영역에서 현재 메소드가 발생가능성이 있는 예외정보를 알려주고 호출자가 적절하게 예외처리를 할 수 있도록 하는것 .
throw
: 예외를 발생시켜라 !!!!!!
숫자가 18보다 작을때 발생하는 예외는 없다 !!!
throw new 발생할 예외객체 ();
- Exception : 예외
- 예외가 발생할지 안 할지는 모르지만 미리 예외를 예측하고
예외처리를 해줌으로써 예외가 발생했을때 프로그램이 멈추지 않고
끝까지 실행될 수 있도록 하는 것.
- 예외의 종류
1) 체크예외
: 컴파일에서 오류가 난다. 그래서 반드시 예외처리가 필수 !!
2) 비체크 예외 - RuntimeException
: 컴파일은 성공하지만 실행도중에 발생하는 예외이다.
: 예외처리를 개발자 선택적으로 할 수 있다.
: 개발자의 경험과 역량이 필요한 부분이다 !
- 예외를 처리하는 방법 !!
1) 직접처리 - try, catch
2) 던지기 - throws
1) 직접처리 방법
try {
예외발생 가능성이 있는 코드 작성;
1.
2.
3.
4.
}catch(XxxxException 변수이름){
// 예외가 발생했을때 해야할 일 작성 !!!
}catch(XxxException 변수이름){
}catch(XxxxException 변수이름){
}....
* catch블럭은 여러개 작성할 수 있다.
주의사항 : catch 블럭을 여러개 작성할때는 반드시 서브클래스예외부터 작성한다 !!
try{
}catch(Exception e){
} .....
catch(Exception e){
}
-Exception의 상속관계
Object --- Throwable - Exception - RuntimeException
체크 Exception
Error (예외처리 할 수 없는 치명적인 오류)
- finally 블럭 !!!
: 예외발생여부와 상관없이 무조건 해야할 일이 있을때 작성한다.
ex) IO 또는 JDBC할때
- IO : 생성 -> 읽기 또는 쓰기 -> 닫기
- JDBC : 로드 -> 연결 -> 실행 -> 닫기
ex)
try{
1.로드
2.연결
3.실행
4.닫기
}catch(){SQLException e){
}finally{
4.닫기
}
--------------------------------------------------------------------------------
try는 반드시 catch 또는 finally블럭과 함께 사용한다.
try{
}catch(XxxException e){
}
===============================================
try{
}catch(XxxxExcerption e){
}finally{
}
==============================================
try{
}finally{
}
----------------------------------------------------------------
throws를 사용하는 이유 ????
: 예외를 한번에 모아서 처리 하기위해서 ...
: 메소드를 만들어서 제공하는 영역에서 현재 메소드가 발생가능성이 있는 예외정보를 알려주고 호출자가 적절하게 예외처리를 할 수 있도록 하는것 .
throw
: 예외를 발생시켜라 !!!!!!
숫자가 18보다 작을때 발생하는 예외는 없다 !!!
throw new 발생할 예외객체 ();