2011-10-11 4 views
0

API 오류 처리를 위해 작업하고있는 구성 요소 전체에서 예외가 사용됩니다.예외 문자열에서 호출 스택을 제거 할 수 있습니까?

catch (Exception ex) 
{ 
    // ex.ToString() below may be something like "database is locked" 
    string error = string.Format(
     "Error when trying to create a playlist: {0}", ex.ToString()); 
    throw new Exception(error); 
} 

기본적으로 하위 수준의 구성 요소는 오류 세부 사항이있는 Exception를 내 보냅니다. 더 일반적인, 사용자에게 친숙한 오류 메시지와 함께.

클라이언트 응용 프로그램에서이 응용 프로그램을 처리 할 때 ex.ToString()를 호출하여 전체 오류 문자열을 가져 오지만 여기에도 호출 스택이 포함됩니다.

Error: exceptions.RuntimeError: Error when trying to create a playlist: 
System.Exception: database is locked 
at <very large call stack here> 

문자열을 구문 분석하지 않고 마지막 섹션 (예 : at <very large call stack here>)이 오류 메시지에 나타나지 않도록하는 쉬운 방법이 있습니까? 이것은 사용자에게 반환되고 있으며 응용 프로그램 중심이 아닌 사용자 중심의 오류를 원합니다.

답변

2

시도 :

string message = string.Format(
    "Error when trying to create a playlist: {0}", ex.Message); 
throw new YourException(message, ex); 
+0

너무 쉬운 - 감사합니다. 'exceptions.RuntimeError'가 처음에 표시되는 것을 막을 수있는 방법. 즉, 원시 오류 문자열 만 표시됩니다. – LeopardSkinPillBoxHat

+0

@LeopardSkinPillBoxHat : 나는 그 대답을 의심합니다 ... 예외를 표시 할 때 Exception.Message를 사용하십시오. 예외를 표시하는 데 사용하는 코드를 게시 할 수 있습니까? –

+0

제 사과 - 오류 문자열의 시작 부분에이 여분의 텍스트를 추가하는 Python 래퍼입니다. 당신의 도움을 주셔서 감사합니다. – LeopardSkinPillBoxHat

관련 문제