e.stackTrace와 e.stackTraceToString

e.stackTrace와 e.stackTraceToString()은 예외 처리 시 stack trace 정보를 다룰 때 사용하는 것이지만, 다음과 같은 차이점이 있다

e.stackTrace (속성)

  • 타입: Array<StackTraceElement>
  • 설명: 예외가 발생한 호출 스택의 각 프레임을 나타내는 배열이다.
  • 사용 목적: 각 스택 프레임을 프로그래밍적으로 분석할 때 사용한다.
  • 예시:
  • val e = Exception("Test") e.stackTrace.forEach { println(it) }
  • Ljava lang stacktraceelement

e.stackTraceToString() (함수)

  • 리턴 타입: String
  • 설명: 예외 메시지 + 전체 stack trace를 문자열 형태로 반환한다.
  • 사용 목적: 로그로 찍거나 출력용으로 사용할 때 적합하다.
  • 예시:
  • val e = Exception("Test") println(e.stackTraceToString())

비교

  e.stackTrace e.stackTraceToString()
타입 Array<StackTraceElement> String
용도 프로그래밍적 분석용 로그/출력용 전체 trace 문자열
예외 메시지 포함 여부 ❌ 포함 안 됨 ✅ 포함됨 (Exception: message 포함)
주 사용처 디버깅/조건 처리 로깅/출력용