2009-11-21 6 views

답변

2

사용 StackTrace 클래스 :

static void ShowExceptionStackTrace(Exception ex) 
{ 
    var stackTrace = new StackTrace(ex, true); 

    foreach (var frame in stackTrace.GetFrames()) 
     Console.WriteLine(frame.GetMethod().Name); 
} 
3

System.Diagnostics.StackTrace 클래스를 확인하십시오. 개체를 만들고 프레임을 지나칠 수 있습니다.

StackTrace st = new StackTrace(); 
foreach (var frame in st.GetFrames()) 
{ 
    Console.WriteLine(frame.GetFileName().ToString() 
     + ":" 
     + frame.GetFileLineNumber().ToString()); 
} 
+0

이 정말 편리한 클래스입니다. 어떤 메소드가 호출되었는지 판별하려면 해당 메소드에 정의 된 사용자 정의 속성이있는 경우이 클래스가 필요합니다. – Josh

+2

잘 나는 StackTrace()의 생성자에 예외 객체를 전달할 수 있다는 것을 알았습니다. 그래서 그 bassicaly : – Karim

+0

@ 카림 : 그것은 쉬운 방법입니다 :) – leppie

1

일관된 해결책을 원할 경우 운이 좋지 않습니다.

stack trace on exception construction을 저장하여 호지 흉벽 해결책을 얻을 수 있습니다.

그러나 프레임 워크에는 예외가 발생할 때 호출되는 후크가 없습니다. 생성자 Exception을 받아들이와

관련 문제