try-catch와 throw

감자·2023년 4월 23일
0

try-catch 문에 대해 알아보자

try는 예외를 감지하고 catch는 그 예외를 처리하는 부분이다

예를 들어,

public class TryCatch {
    public static void main(String[] args) {
        try{
            int[] arr = new int[3];
            arr[5] = 100;
        }catch (Exception e){
            System.out.println("에러발생");
        }
    }
}

실행하면 콘솔창에는 에러발생 이라고 출력된다.

throw 란 예외를 강제적으로 발생 시킬 때 사용된다. 즉, 사용자가 직접 예외를 발생시키고 싶은 곳에 넣어서 사용하면 된다.

예를 들어,

int age=16;
        try{
            if(age<19){
                throw new Exception("만 19세 이하는 살 수 없습니다.");
            }else {
                System.out.println("주문하신 상품이 여깄습니다.");
            }
        }catch (Exception e){
            e.printStackTrace();
        }

결과값은

java.lang.Exception: 만 19세 이하는 살 수 없습니다.
	at velog.TryCatch.main(TryCatch.java:19)

해당 문구로 나온다.

여기서 나오는 e.printStackTrace()는 무엇일까?

예외 발생 당시의 호출 스택에 있는 메소드의 정보와 예외 메시지를 화면에 출력하며 에러의 발생 근원지를 찾아서 단계별로 에러를 출력한다.

예외 메세지(by.zero)와 예외난 위치를 알려주는 데에 사용된다.

비슷한 getMessage()는 에러의 원인을 간단하게 출력한다. 즉, 발생된 예외 클래스의 인스턴스에 저장된 메세지를 얻을 수 있다.

getMessagae()는 예외 메세지 (by.zero)만 출력된다.

profile
코딩하는 감자

0개의 댓글