Develop/Java
[Java] try와 catch
회뜨는참치
2023. 7. 18. 23:48
반응형
try와 catch문은 예외처리를 할 때 사용하는 구문이다.
예외처리?
- 프로그램 실행 중 오류, 예외(Exception)이 발생한 경우 프로그램이 강제종료 되지 않고 정상 처리될 수 있게 하는 방법
try-catch-finally 예시
try{
//예외가 발생할 수 있는 코드
}catch(Exception exception){
//Exception이 발생했을때 처리하기 위한 코드를 입력
//보통 예외 메세지를 출력하고 로그로 남긴다.
//exception은 참조 변수를 의미
}catch(Exception2 exception2){
//Exception2가 발생했을때 처리하기 위한 코드 입력
}finally{
//예외 발생과 관계 없이 반드시 실행되는 코드를 넣는다
}
예제를 보면 알 수 있듯이 try에 코드를 입력하고, 예외상황에 따라 catch문이 동작한다.
예외가 발생하지 않으면 try->finally문만 실행되고, 예외 발생시 try->catch->finally 순으로 실행된다.
마치 if, if-else, else와 비슷한 느낌같다.
예외정보 메소드
예외가 발생한 정보는 getMessage()와 printStackTrace()로 확인할 수 있다.
try{
// 실행할 코드
}catch(Exception exception){
exception.printStackTrace(); // 예외 발생 위치와 내용 반환
System.out.println("예외 내용 : "+exception.getMessage()); //예외 내용 반환
}finally{
// 실행할 코드
}
예외 강제 발생
예외는 throw 키워드를 사용해 인위적으로도 발생시킬 수 있다.
try{
throw new Exception();
}catch(Exception e){
//예외처리할 코드 입력
}
throw new 예외 명(); 을 입력해 예외를 발생시킬 수 있다.
예외 던지기
예외가 발생할 가능성이 있는 메소드를 호출한 쪽으로 예외를 처리할때 throws 키워드를 사용한다.
public void test1(){
try{
test2();
}catch(Exception exception){
예외처리할 내용
}
}
public void test2() throws Exception{
throw new Exception("임의로 발생한 예외");
}
이렇게 되면 test2 메소드를 부른 test1에서 예외를 처리하게 된다.
반응형