[개인공부] printStackTrace()와 getMessage()

Walter Mitty·2022년 12월 22일
0

개인공부

목록 보기
21/40

printStackTrace() 와 getMessage()

  • printStackTrace():
    예외발생 당시의 호출스택(Call Stack)에 있었던 메서드의 정보와 예외 메시지를 화면에 출력한다.
  • getMessage():
    발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.

멀티 catch 블럭

  • 내용이 같은 catch 블럭을 하나로 합친 것 (JDK1.7 이상 부터)
    • 단, 아래처럼 멀티 catch 블럭에 쓰는 두 클래스가 부모자식 관계이면 안된다.
      ① 클래스가 부모 자식 관계
      try {
      	... 
      //  } catch (ParentException | ChildException e) { //에러!!! }
      } catch (ParentException e) { // OK. 위의 라인과 의미상 동일
        e.printStackTrace();
      }
      ② e로 호출시 하나의 클래스에서만 선언된 메서드 호출불가. 공통 사항만 가능
      정말 쓰고 싶을 땐 형변환 해줘야한다.
      try {
      	...
      } catch (ExceptionA | ExceptionB e) {
      	e.methodA(); // 에러. ExceptionA에 선언된 methodA()는 호출불가
        
        if(e instanceof ExceptionA) {
        ExceptionA e1 = (ExceptionA) e;
        e1.methodA(); // OK. ExceptionA에 선언된 메서드 호출 가능
      } else { // if(e instanceof ExceptionB)
      	...
      }

0개의 댓글