[Java] Stack Trace

2024. 11. 18. 22:04·Java

 

Java에서 스택 트레이스(Stack Trace)는 프로그램 실행 중 예외(Exception)가 발생했을 때, 해당 예외가 발생한 위치와 호출된 메서드의 순서를 보여주는 디버깅 정보이다.

 

스택 트레이스는 예외가 발생한 이유를 파악하고 해결하는 데 도움이 되는 도구이다.

 

 

 

public class StackTracePractice {
    public static void main(String[] args) {
        Generation g = new Generation();
        try {
            g.checkStringLength();
        } catch (NullPointerException npe) {
            npe.printStackTrace();
        }
    }
}

class Generation {
    private String str;

    void checkStringLength() {
        System.out.println(str.length());
    }
}

 

 

임의의 코드가 있다. 해당 코드는 Generation class의 멤버 변수 str의 길이를 출력하는 목적을 지니고 있다.

일부러 str를 초기값 null을 유지한채 length method를 호출해 NullPointerException을 발생시킨다.

 

main method에서 Exception을 catch한다.

 

 

 

 

 

코드 실행하면 NullPointerException이 발생한다.

 

이 예외 발생 정보에 대해 자세히 알아보자

 

 


 

 

스택 트레이스의 구성

 

 

 

1. 맨 위에 예외의 타입과 메시지

 

  맨 위 예외의 타입과 추가적인 메시지를 나타낸다.

  java.lang.NullPointerException : Cannot invoke "String.length()" because "this.str" is null.

 

  예외의 종류: 예외가 발생한 원인

 

 

 

2. 예외가 발생한 메스드와 위치

 

  호출 스택에 따라 각 메서드가 실행된 순서와 발생 위치를 나타낸다.

  at 뒤에 발생한 클래스, 메서드, 파일명, 그리고 줄 번호가 표시된다.

 

  at Generation.checkStringLength(StackTracePractice.java:13)

 

  •   Generation: 클래스 이름
  •   checkStringLength: 메서드이름
  •   StackTracePractice.java:13: 파일 이름과 예외가 발생한 줄번호(13번 줄)

 

프로그램이 실행되면서 메서드 호출이 스택에 쌓인다. 

 

 

보통 StackTrace at부분은 밑에서부터 위로 해석한다. main method가 첫 시작이니.

'Java' 카테고리의 다른 글

[Java] 얕은 복사와 깊은 복사  (2) 2024.12.27
[Java] Method Signature  (0) 2024.12.01
[Java] Argument와 Parameter의 차이점  (4) 2024.11.09
[Java] 배열을 쉽게 출력하기!  (1) 2024.09.16
[Java의 정석] Chapter4 연습문제  (3) 2024.09.13
'Java' 카테고리의 다른 글
  • [Java] 얕은 복사와 깊은 복사
  • [Java] Method Signature
  • [Java] Argument와 Parameter의 차이점
  • [Java] 배열을 쉽게 출력하기!
oneH
oneH
  • oneH
    Hello WeonHyeok!
    oneH
  • 전체
    오늘
    어제
    • 분류 전체보기 (52)
      • CSS (1)
      • Javascript (5)
        • JS자료구조,알고리즘 (1)
      • Java (14)
        • OOP (9)
      • JSP (1)
      • Computer Network (2)
      • 이론 컴퓨터 (2)
      • Project (0)
      • Algorithm&Data Structure (12)
      • 데이터베이스 (3)
      • Spring,SpringBoot (1)
      • Git & GitHub (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    combinators
    티스토리챌린지
    OOP
    스택
    Java
    JS
    선택자
    math
    링크드 리스트
    자바
    Git
    Stack
    컴파일
    SQL
    OSI7계층
    Algorithm
    MySQL
    Selector
    큐
    프로토콜
    덱
    오블완
    이진검색
    컴퓨터네트워크
    폰노이만 아키텍쳐
    JavaScript
    컴퓨터 네트워크
    선형 큐
    object
    컴퓨터구조
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
oneH
[Java] Stack Trace
상단으로

티스토리툴바