Home
>
CS
>
2024
>
πΎ [CS] μ€ν νΈλ μ΄μ€(Stack Trace)λ 무μμΌκΉμ?
CS
πΎ [CS] μ€ν νΈλ μ΄μ€(Stack Trace)λ 무μμΌκΉμ?
- μ€ν νΈλ μ΄μ€(Stack Trace)λ νλ‘κ·Έλ¨ μ€ν μ€ μμΈ(Exception)κ° λ°μνμ λ, μμΈκ° λ°μν μ§μ κ³Ό κ·Έ μμΈλ‘ μ΄μ΄μ§ ν¨μ νΈμΆ κ²½λ‘λ₯Ό 보μ¬μ£Όλ λλ²κΉ
μ 보μ
λλ€.
- μ΄λ₯Ό ν΅ν΄ κ°λ°μλ μ΄λ€ μμΈκ° μ΄λμ λ°μνλμ§, κ·Έλ¦¬κ³ κ·Έ μμΈκ° μ΄λ»κ² λ°μνλμ§λ₯Ό νμ
ν μ μμ΅λλ€.
1οΈβ£ μ€ν νΈλ μ΄μ€(Stack Trace)μ μν .
1οΈβ£ λλ²κΉ
.
- μ€ν νΈλ μ΄μ€(Stack Trace)λ₯Ό ν΅ν΄ μμΈκ° λ°μν μμΉλ₯Ό μ νν μ°Ύμλ΄κ³ , λ¬Έμ λ₯Ό μ μνκ² ν΄κ²°ν μ μμ΅λλ€.
2οΈβ£ λ¬Έμ μ μμΈ νμ
.
- μ€ν νΈλ μ΄μ€(Stack Trace)λ μμΈκ° λ°μνκΈ° μ κΉμ§ μ΄λ€ ν¨μκ° νΈμΆλμλμ§λ₯Ό μμλλ‘ λ³΄μ¬μ£ΌκΈ° λλ¬Έμ λ¬Έμ μ μμΈμ μΆμ ν μ μλ μ€μν λ¨μλ₯Ό μ 곡ν©λλ€.
4οΈβ£ νΈμΆ κ²½λ‘ μ΄ν΄.
- νλ‘κ·Έλ¨μμ ν¨μ νΈμΆ κ²½λ‘λ₯Ό μ΄ν΄νλ λ° λμμ μ£Όμ΄, μ½λμ νλ¦μ νμ
νκ³ μμ ν μ μκ² ν©λλ€.
2οΈβ£ μ€ν νΈλ μ΄μ€μ ꡬ쑰.
- μ€ν νΈλ μ΄μ€(Stack Trace)λ μΌλ°μ μΌλ‘ μμΈμ μ’
λ₯μ λ©μμ§, κ·Έλ¦¬κ³ ν¨μ νΈμΆ μ€νμ λͺ©λ‘μΌλ‘ ꡬμ±λ©λλ€.
- κ° νλͺ©μ λ€μ μ 보λ₯Ό ν¬ν¨ν©λλ€.
-
- μμΈμ μ’
λ₯μ λ©μμ§
-
- νΈμΆλ λ©μλμ λͺ©λ‘.
1οΈβ£ μμΈμ μ’
λ₯μ λ©μμ§.
- μμΈμ μ νκ³Ό λ©μμ§λ₯Ό ν΅ν΄ μμΈμ μμΈμ λν κΈ°λ³Έμ μΈ μ 보λ₯Ό μ 곡ν©λλ€.
2οΈβ£ νΈμΆλ λ©μλμ λͺ©λ‘.
- μμΈκ° λ°μν μμ κΉμ§μ ν¨μ νΈμΆ κ²½λ‘λ₯Ό μμμλΆν° μλλ‘ νμν©λλ€.
- κ°μ₯ μμ νλͺ©μ μμΈκ° μ€μ λ‘ λ°μν λ©μλμ΄λ©°, κ·Έ μλλ μμΈκ° λ°μνκΈ°κΉμ§ νΈμΆλ λ©μλλ€μ΄ νμλ©λλ€.
3οΈβ£ μ€ν νΈλ μ΄μ€ μμ (Java)
- μλμ μ½λλ Java νλ‘κ·Έλ¨μμ
NullPointerException
μ΄ λ°μνμ λμ μ€ν νΈλ μ΄μ€ μμμ
λλ€.
public class StackTraceExample {
public static void main(String[] args) {
firstMethod();
}
public static void firstMethod() {
secondMethod();
}
public static void secondMethod() {
String str = null;
str.length(); // μ¬κΈ°μμ NullPointerException λ°μ
}
}
π μΆλ ₯λλ μ€ν νΈλ μ΄μ€.
Excption in thread "main" java.lang.NullPointerException
at StackTraceExample.secondMethod(StackTraceExample.java:14)
at StackTraceExample.firstMethod(StackTraceExample.javee:9)
at StackTraceExample.main(StackTraceExample.java:5)
4οΈβ£ μ€ν νΈλ μ΄μ€μ κ΅¬μ± μμ.
1οΈβ£ μμΈμ μ’
λ₯μ λ©μμ§.
-
Exception in thread "main" java.lang.NullPointerException
- νλ‘κ·Έλ¨μ λ©μΈ μ€λ λμμ
NullPointerException
μ΄ λ°μνλ€λ κ²μ μλ €μ€λλ€.
2οΈβ£ νΈμΆλ λ©μλμ λͺ©λ‘.
-
at StackTraceExample.secondMethod(StackTraceExample.java:14)
-
secondMethod
λ©μλμ 14λ²μ§Έ μ€μμ μμΈκ° λ°μνμ΅λλ€.
-
at StackTraceExample.firstMethod(StackTraceExample.java:9)
-
firstMethod
κ° secondMethod
λ₯Ό νΈμΆνμ΅λλ€.
-
at StackTraceExample.main(StackTraceExample.java:5)
-
main
λ©μλκ° firstMethod
λ₯Ό νΈμΆνμ΅λλ€.
- μ€ν νΈλ μ΄μ€(Stack Trace)λ κ°μ₯ μ΅κ·Όμ νΈμΆλ λ©μλ(μμΈκ° λ°μν λ©μλ)λΆν° μμνμ¬, μμΈκ° λ°μνκΈ° μ μ νΈμΆλ λ©μλλ€μ μμ°¨μ μΌλ‘ νμν©λλ€.
5οΈβ£ μ€ν νΈλ μ΄μ€μ μ€μμ±.
1οΈβ£ μ€λ₯μ μμΈ νμ
.
- μ€ν νΈλ μ΄μ€λ₯Ό 보면, μμΈκ° λ°μν μ νν μμΉμ μ΄λ€ ν¨μμμ νΈμΆλ κ²μΈμ§λ₯Ό μ μ μμ΅λλ€.
- μ΄λ₯Ό ν΅ν΄ μ€λ₯μ μμΈμ μ μνκ² νμ
ν μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, μμ μ€ν νΈλ μ΄μ€(Stack Trace)μμλ
secondMethod
μ str.length()
νΈμΆμμ NullPointerException
μ΄ λ°μνμμ μ μ μμ΅λλ€.
- κ·Έ μ΄νμλ
firstMethod
κ° μ΄ λ©μλλ₯Ό νΈμΆνκ³ , μ΅μ’
μ μΌλ‘ main
λ©μλμμ firstMethod
κ° νΈμΆλμμ΅λλ€.
2οΈβ£ λλ²κΉ
μκ° λ¨μΆ.
- μ€ν νΈλ μ΄μ€(Stack Trace)λ μμΈμ μμΈμ μ ννκ² μ§λͺ©νκΈ° λλ¬Έμ, κ°λ°μκ° μ½λλ₯Ό μμ νκ³ λλ²κΉ
νλ μκ°μ λ¨μΆν μ μμ΅λλ€.
-
λλ²κ±°λ₯Ό μ¬μ©νμ§ μκ³ λ λ¬Έμ μ κ·Όλ³Έ μμΈμ λΉ λ₯΄κ² μ°Ύμ μ μμ΅λλ€.
3οΈβ£ νΈμΆ κ²½λ‘ μ΄ν΄.
- μ½λμ νλ¦μ μ΄ν΄νλ λ° λμμ μ€λλ€.
- νΉν, 볡μ‘ν νλ‘κ·Έλ¨μ΄λ νμ¬μ μ½λλ₯Ό λ€λ£° λ μ€ν νΈλ μ΄μ€(Stack Trace)λ μ½λκ° μ΄λ»κ² μλνλμ§μ λν μ€μν λ¨μλ₯Ό μ 곡ν©λλ€.
6οΈβ£ μ€ν νΈλ μ΄μ€ μ½λ λ°©λ².
1οΈβ£ μμΈ λ©μμ§λ₯Ό νμΈ.
- μμΈ λ©μμ§λ λ¬Έμ μ μ’
λ₯μ μμΈμ λν΄ μ²« λ²μ§Έ ννΈλ₯Ό μ 곡ν©λλ€.
- μλ₯Ό λ€μ΄,
NullPointException
μ λ κ°μ²΄μ μ κ·Όνλ €κ³ νλ€λ κ²μ μλ―Έν©λλ€.
2οΈβ£ κ°μ₯ μμ νΈμΆ μμΉ μ°ΎκΈ°.
- μ€ν νΈλ μ΄μ€(Stack Trace)μμ κ°μ₯ μμ νΈμΆ μμΉλ μμΈκ° λ°μν μ νν μμΉλ₯Ό λνλ
λλ€.
- μ΄ λΆλΆλΆν° λ¬Έμ λ₯Ό μΆμ νκΈ° μμν΄μΌ ν©λλ€.
3οΈβ£ νΈμΆ μμλλ‘ νμΈ.
- μμΈκ° λ°μν μ½λμ νλ¦μ μ΄ν΄νλ €λ©΄ νΈμΆ μμλλ‘ κ° λ©μλκ° μ΄λ€ μν μ νλμ§ λΆμν©λλ€.
- μ΄ κ³Όμ μ ν΅ν΄ λ¬Έμ κ° μλ λΆλΆμ λΉ λ₯΄κ² μ°Ύμ μ μμ΅λλ€.
7οΈβ£ μ€ν
νΈλ μ΄μ€λ₯Ό μ μ©νκ² μ¬μ©νλ λ°©λ².
1οΈβ£ λ‘κΉ
(logging)κ³Ό ν¨κΌ μ¬μ©.
- μ€μ λ‘ λ°°ν¬λ μννΈμ¨μ΄μμλ μ€λ₯κ° λ°μνλ©΄ λ‘κ·Έμ μ€ν νΈλ μ΄μ€(Stack Trace)λ₯Ό κΈ°λ‘νλλ‘ μ€μ νλ κ²μ΄ μ€μν©λλ€.
- μ΄λ₯Ό ν΅ν΄ μ¬μ©μκ° μ€λ₯λ₯Ό λ³΄κ³ νμ λ, κ°λ°μκ° μ½κ² λ¬Έμ μ μμΈμ νμ
ν μ μμ΅λλ€.
- Javaμμλ μμΈλ₯Ό μ‘μ λ
e.printStackTrace()
λ₯Ό μ¬μ©νμ¬ μ€ν νΈλ μ΄μ€(Stack Trace)λ₯Ό μΆλ ₯νκ±°λ, λ‘κΉ
νλ μμν¬(logging framework)λ₯Ό μ¬μ©νμ¬ λ‘κ·Έ νμΌμ κΈ°λ‘ν μ μμ΅λλ€.
2οΈβ£ μμΈ μ²λ¦¬μμ μ€ν νΈλ μ΄μ€ νμ©.
- μμΈλ₯Ό μ‘μμ μ²λ¦¬ν λ, μ€ν νΈλ μ΄μ€λ₯Ό μΆλ ₯ν¨μΌλ‘μ¨ λλ²κΉ
μ λμμ΄ λ μ μμ΅λλ€.
- νΉν, μμνμ§ λͺ»ν μμΈλ₯Ό λλ²κΉ
ν λ μ μ©ν©λλ€.
8οΈβ£ μμ½.
-
μ€ν νΈλ μ΄μ€(Stack Trace)λ νλ‘κ·Έλ¨μμ μμΈκ° λ°μνμ λ μμΈμ μμΈκ³Ό νΈμΆ κ²½λ‘λ₯Ό 보μ¬μ£Όλ λλ²κΉ
μ 보μ
λλ€.
- μμΈμ μ’
λ₯μ λ©μμ§, κ·Έλ¦¬κ³ ν¨μ νΈμΆ μ€ν λͺ©λ‘μΌλ‘ ꡬμ±λμ΄ μμΌλ©°, λ¬Έμ λ₯Ό μΆμ νκ³ ν΄κ²°νλ λ° ν° λμμ΄ λ©λλ€.
- μ΄λ₯Ό ν΅ν΄ κ°λ°μλ μ½λμ νλ¦μ μ΄ν΄νκ³ , μμΈκ° λ°μν μ νν μμΉμ μμΈμ νμ
νμ¬ λλ²κΉ
μκ°μ λ¨μΆν μ μμ΅λλ€.
- μ€ν νΈλ μ΄μ€(Stack Trace)λ νΉν λ‘κΉ
(logging)κ³Ό κ²°ν©νμ¬ μ¬μ©νλ©΄, λ°°ν¬λ μννΈμ¨μ΄μ λ¬Έμ λ₯Ό μ§λ¨νλ λ° μ μ©ν©λλ€.