[JAVA] e.printStackTrace() 사용하지 말아야하는 이유

2021. 7. 4. 23:32·JAVA
728x90

e.printStackTrace()

  • 예외 발생 당시의 호출스택(Call stack)에 있던 메소드의 정보와 예외 결과를 화면에 출력함
  • 예외 상황을 분석하기 위한 용도로 사용 (개발자에게 디버깅 할 수 있는 힌트를 제공)

사용하지 말아야 하는 이유

  1. printStackTrace()를 call할 경우 System.err로 쓰여져서 제어하기가 힘듬
  2. printStackTrace()는 java 리플렉션을 사용하여 추적하는 것이라서 많은 오버헤드가 발생할 수 있음
  3. printStackTrace()는 서버에서 스택정보를 취합하기 때문에 서버에 부하가 발생할 수 있음
  4. printStackTrace()는 출력이 어디로 가는지 파악하기 가 어려움 (톰캣같은 경우 catalina.out에 남음)
  5. printStackTrace()는 관리가 힘듬 (보통 log4j, logback과 같은 로깅 라이브러리를 사용하여, 로그 패턴 및 로그 메세지를 지정 및 콘솔로그 / 파일로그 형태로 관리할 수 있음)

성능을 중시하는 어플리케이션이라면 e.printStackTrace는 사용하지 말자 

저작자표시

'JAVA' 카테고리의 다른 글

[JAVA] DBCP (DB Connection Pool)  (0) 2021.07.18
[JAVA] Stack / Deque  (0) 2021.07.16
[JAVA] List Collection(ArrayList / LinkedList / Vector)  (0) 2021.06.26
[JAVA] String / StringBuilder / StringBuffer  (0) 2021.06.20
[JAVA] HashMap 원리  (0) 2021.06.13
'JAVA' 카테고리의 다른 글
  • [JAVA] DBCP (DB Connection Pool)
  • [JAVA] Stack / Deque
  • [JAVA] List Collection(ArrayList / LinkedList / Vector)
  • [JAVA] String / StringBuilder / StringBuffer
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    이펙티브 코틀린
    Kafka
    이펙티브코틀린
    JPA
    클린코드
    코틀린
    go
    Elk
    ElasticSearch
    splunk
    Spring
    AWS
    프로그래머스
    자바
    IntelliJ
    docker
    cleancode
    SQL
    엘라스틱서치
    java
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[JAVA] e.printStackTrace() 사용하지 말아야하는 이유
상단으로

티스토리툴바