** 예외처리
: 프로그램 실행중에 사용자의 부주의로 인한 예기치 않는 상황에 대한 처리
** 예외처리 하는 방법
1. try ~ catch 절에 의해 직접 예외처리하는 방법
2. 메소드명 뒤에 throw 키워드를 붙여 메소드를 호출하는 쪽으로 예외를 전파하는 방법
try{
예외상황이 발생할 만한 문장들...
'예외가 발생된다' 라는 말은 예외클래스의 객체가 생성된다는 말
}catch(예외자료형 변수명){
예외가 발생되었을 때 처리할 문장들...
}
==> 자바는 대체로(일반적으로) 발생할 수 있는 예외상황에 대한 클래스가 이미 정의되어 있다.
==> 예외에 대한 제일 조상클래스 : Exception
** 하나의 try 안에 여러개의 catch가 올수 있다. 다만 범위가 적은 순서대로 와야 한다!
try{
예외상황이 발생할 만한 문장들...
'예외가 발생된다' 라는 말은 예외클래스의 객체가 생성된다는 말
}catch(예외자료형 변수명){
예외가 발생되었을 때 처리할 문장들...
}catch(예외자료형 변수명){
~~~.
}
** Finally
: 예외가 발생하거나 그렇지 않거나 반드시 처리할 문장
try{
예외상황이 발생할 만한 문장들...
'예외가 발생된다' 라는 말은 예외클래스의 객체가 생성된다는 말
}catch(예외자료형 변수명){
예외가 발생되었을 때 처리할 문장들...
}catch(예외자료형 변수명){
~~~.
}finally{
예외가 발생하거나 그렇지 않거나 반드시 처리할 문장
}
** throw 예약어
: 현재 메소드 내에서 예외처리 하기 힘든 경우 호출하는 곳에서 대신 처리 해달라며 양도하는 것
메소드를 호출하는 쪽에서 예외처리를 해야한다.
형식)
public 반환자료형 메서드명([매개변수1, 매개변수...]) throw 예외자료형1, 예외자료형2 {
메소드 내용
}
** RuntimeException
: '사실 어떤 예외는 사용자가 처리 안해도 자바가 알아서 처리해주는게 있고, 어떤 예외는 사용자가 반드시 처리해야만 하는 예외가 있다.'
이를 'RuntimeException' 이라고 한다.
RuntimeException의 후손들은 사용자가 특별히 예외처리를 하지 않아도 좋다.
그러나 그 이외의 것들은 반드시 사용자가 예외처리 해야한다.
==> 반드시 예외처리 해야하는 것들의 대표적인 종류
* db에 접근하기 위한 메소드들
* 파일 입출력과 관련한 메소드들
* 네트워크와 관련한 메소드들
예)
db서버에 접속하기 위한 메소드 getConnection은 SQLException을 안고 있기 때문에
반드시 호출하는 쪽에서 예외처리 해야 한다.
public static Connection getConnection(String url, String user, String password) throws SQLException
** 사용자 정의 예외
형식)
class 사용자 정의 예외 클래스 이름 extends Exception{
생성자(String msg){
super(msg);
}
}
** 사용자가 강제로 예외를 발생시키기 위한 키워드(throws와 다름)
형식)
throw new 사용자 정의 예외 클래스 이름();
**throws 는 메소드내에서 예외를 메소드 호출하는 쪽으로 전파하기 위한 키워드
'JAVA > JAVA' 카테고리의 다른 글
자바 예제 - 멀티쓰레드 프로그래밍 방법 (0) | 2016.06.12 |
---|---|
자바 개념 - 멀티 쓰레드(Thread) 프로그래밍 설명 및 간단한 예제 (0) | 2016.06.12 |
자바 예제 - inner 클래스 만들어지는 과정 (0) | 2016.06.12 |
자바 개념 - inner 클래스 (0) | 2016.06.12 |
자바 개념 - equals 메소드와 toString 메소드 설명 (0) | 2016.06.12 |