Back_end/JAVA
JAVA - 예외처리
hyeon1016
2024. 9. 23. 01:54
예외
프로그램 실행 중 발생하는 오류 중에서 처리가 가능한 것을 예외라 한다.
예외 처리
예외가 발생했을 때, 프로그램이 비정상적으로 종료되는 것을 막는 방법
예외처리 해야 될 곳은 정해져 있다.
-이클립스에서 try 쓰라는 오류가 발생했을 때 사용하면 된다.
try-catch문
try문으로 예외가 발생할 가능성이 있는 문장을 중괄호로 묶어준다.
catch문에서 소괄호 안에는 예외 클래스의 종류와 참조변수를, 중괄호 안에는 예외 발생 시 실행할 코드를 작성한다.
예시
try{
//예외 발생 가능성이 있는 문장들
} catch(예외 1) {
//예외 1에 알맞는 처리
} catch(예외 2) {
//예외 2에 알맞는 처리
}
finally문
예외 발생 여부와 상관없이 반드시 실행시키는 구문이다.
try-catch문과 함께 사용한다.
예시
try{
//예외 발생 가능성이 있는 문장들
} catch(예외 1) {
//처리
} finally {
//무조건 실행
}
객체로서의 예외
Exception
자바에서는 예외도 객체로 처리하는데, 모든 예외 클래스의 부모가 바로 Exception이다.
즉 모든 예외 클래스들을 Exception형의 참조변수로 참조할 수 있다.(모든 예외 처리 가능)
try{
//예외 발생 가능성이 있는 문장
} catch(Exception e) {
//처리
}
Exception의 메서드
getMessage();
toString();
printStackTrace();
예외 발생 throw
개발자가 고의로 예외를 발생시킬 때 사용하는 코드다.
thorw문 뒤에 예외 객체를 붙여 사용할 수 있다.
예시
1. 참조변수를 사용
Exception e1 = new Exception();
throw e1;
2. 직접 던지기
throw new Exception();
예외 던지기 throws
메서드에서 예외가 발생했을 때, 호출한 쪽으로 예외를 던지는 것이다.
예외를 받은 쪽은 직접 예외 처리를 하거나 예외를 던져야하는 문법적 강제성이 발생한다.
예시
void a() throws Exception{
//예외 발생
}
사용자 정의 예외
예외 클래스를 개발자가 직접 정의할 수도 있다.
언제?
-기존 API에서 제공하는 예외 클래스만으로 예외의 경우를 표현할 수 없는 경우
예시
class e1 extends Exception {
e1(){}
e1(String a){
super(a);
}
}
throw new e1("테스트");