예외를 던지기를 원하지만 사용자 지정 메시지와 함께 스택 트레이스를 유지하려고합니다. 나는 여러 가지 실을 겪었다.예외를 던지지만 스택 추적을 유지하십시오.
**The remote server returned an error: (401) Unauthorized.**
[WebException: The remote server returned an error: (401) Unauthorized.]
original stack trace
[NewException: newMessage]
New Stack Trace
좋은 것은 모든 화면에 존재입니다 : 마지막 appraoch 죽음의 화면에 출력 (사용자 정의 예외 기본 클래스 생성자를 호출하는 생성자)를 사용
catch (Exception ex)
{
throw; // Message is read only but stacktrace persist
throw ex; // Message is readonly and strack trace also blows .. worst!
throw new CustomException("My exception");// Message can be overridden but stacktrace lost
throw new CustomException("My message",ex);// same as above. However if this constructor in exception class calls same constructor of base class then .. see below
}
뭔가 같다. 그러나 맨 위에는 예외가 원래 메시지가 아닌 '새 메시지'로 표시되기를 원합니다.
내 질문을 조정 : 어떻게 원래의 스택 추적하지만 사용자 정의 오류 메시지와 함께 죽음의 화면에 표시 할 수 있습니까?
이 예외를 반환하는 웹 서비스인가? – Oded
필자의 예에서는 실제로 웹 서비스 호출입니다. 그러나 예외는 DivisionByZero 나 sqlException과 같은 것이 될 수 있기 때문에 중요하지 않습니다. 아이디어는 사용자에게 원래 스택 추적을 알리는 것입니다. 그러나 개발자는 기본 예외 메시지를보다 도움이되는 사용자 정의로 사용자 정의합니다. – helloworld
아니요, 중요하지 않습니다. Webservice 프레임 워크에는 예외에 대한 자체 아이디어가 있습니다. –