문제

내가 만든 사용자 지정한 예외는 아주 특정한 문제는 발생할 수 있습니다.나는 데이터를 받을 다른 시스템에서,그리고 내가 제기하는 경우에는 예외가 그것은 폭탄을하는 동안을 분석하는 데이터입니다.내 사용자 지정 예외가 필드는"ResponseData",할 수 있도록 트랙이 정확히 무엇을 내 코드를 처리할 수 없습니다.

에서 사용자 지정한 예외와 같은 이야는 추가 응답 데이터에 갈 예외"메시지"?가는 경우가 있는 메시지 될 수있다.나는 종류의것을 원하기 때문에 거기에 나 를 사용하여,그리고 어떻게 얻을 수 있는 데이터입니다.

그래서 질문은 하나:-어떻게 받을 수 있 를 기록에서 추가 정보 필드에 사용자 정의 예외 나 -해 추가 예외 정보로 이동"메시지"설턴트를 제공합니다.

도움이 되었습니까?

해결책

당신이 없을 채우기 .Message 으로 디버깅 정보가 있지만,오히려 간결하고,도움이 되는 작품의 텍스트입니다.

http://msdn.microsoft.com/en-us/library/system.exception.message.aspx

의 텍스트 메시지가 완전히 설명하는 오류 및해야하는 경우,가능한 방법을 설명하고 있습니다. 값이 메시지의 속성 정보에 포함되어 반환에 의해 ToString.

메시지의 속성을 설정만 만드는 경우는 예외입니다.지 않은 경우 메시지를 공급하였 생성자를 위한 현재 인스턴스,시스템 공급하는 기본 메시지 포맷을 사용하여 현재 시스템이 문화입니다.

[..]

노트 상속자:

메시지의 속성 클래스에서 재정의 제어할 필요가 있는 메시지 내용이나 형식입니다.응용 프로그램 코드를 일반적으로 액세스하는 이 숙박 시설 할 때 그것은 필요에 대한 정보를 표시하는 예외를 붙잡았다.

오류 메시지에 지역화해야 합니다.

응답 데이터를 자격을 주지 않으로 설명이 있습니다.

잘 되지 않는 것 를,나는 당신에게 말할 수 없을 확장하는 방법 Exception 클래스를 사용하는 동안.가 를 구현하는 자신의 하위 클래스 Exception?또한 인터페이스?할 수 있습니 서브 클래스는 그것을 자신을?

다른 팁

에서 사용자 지정 예외가 이와 같은, 해야는 추가 응답 데이터 이동 로 예외"메시지"?

No,로 Sören 이미 지적.그러나,예외를 입력할 수 있 override ToString 고 현명하게 추가 응답 데이터는 정보가 있다.이것은 정상적인 실천에 대한 예외의 유형에 BCL(기본 클래스 라이브러리)지 않을 것이다,그래서 당신은 자신을 찾을 수영에 대한 조류.예를 들어,보 시스템입니다.IO.FileNotFoundException.ToString 구현 SSCLI(Rotor):

public override String ToString()
{
    String s = GetType().FullName + ": " + Message;

    if (_fileName != null && _fileName.Length != 0)
        s += Environment.NewLine + String.Format(Environment.GetResourceString("IO.FileName_Name"), _fileName);

    if (InnerException != null)
        s = s + " ---> " + InnerException.ToString();

    if (StackTrace != null)
        s += Environment.NewLine + StackTrace;

    try
    {
        if(FusionLog!=null)
        {
            if (s==null)
                s=" ";
            s+=Environment.NewLine;
            s+=Environment.NewLine;
            s+="Fusion log follows: ";
            s+=Environment.NewLine;
            s+=FusionLog;
        }
    }
    catch(SecurityException)
    {

    }
    return s;
}

당신이 볼 수 있듯이,그것에 추가합의 콘텐츠 FusionLog 속성을 나타내는 추가 정보의 경우에는 어셈블리드 실패입니다.

어떻게 받을 수 있 를 기록하는 추가 정보의 필드에서 사용자 지정 예외

저장 결과의 전화 ToString 에는 예외로의 세부 사항이 있는 경우 ToString 로 구현되는 규정,정보를 얻을 것이라 기록 더없이 작동합니다.만 문제는 로그온한 세부사항을 것입 비정형 텍스트입니다.

예외 클래스 사전을 포함하는(데이터 저는 믿습니다)사용할 수 있는 연결하는 주문과 데이터를 바닐라 예외는 아니다.

저는 완전히 이해할 수 없는 질문 하지만 당신은 것을 하고 있습니다 무엇을 추가적인 예외가 데이터는 경우에 없는 당신의 질문에 무료 무시.

내가 생각하는 중요한 질문은 무엇을 정확히 예외 메시지가?하지 않는 예외에서 왔는지,스택 추적은;그것은 캡슐화하는 예외에서 더 많은 일반적인 중 하나,그것으로 이루어져야 한 InnerException field;는 경우에는 예외입니다만에서 발생한 특정 장소에서 당신의 코드 그렇지 않은지를 설명하는 어떤 종류의 오류에 당신이-그게 무슨 형식의 예외입니다.

일반적으로 사용하는 메시지 분야를 제공하는 간단하,읽을 수 있는 팁을 프로그래머지 않는 나보고,이러한 첫 번째 시간에 사용할 수 있는 이해를 얻기 위해 내부 시스템입니다.내가 고려하는 메시지 분야에 적합한 것(한 문장으로)설명하는 힌트로 어떻게 이 오류가 자주 발생 또는 참조를 추가 읽고 있습니다.

그러므로 내가 이해하는 귀하의 질문에,내가 생각하는 가장 좋은 방법이'추가적인 정보는'에서 받은 또 다른 시스템으로 InnerException.몰 를는 경우에,그러나 그 소금을 확인하기 위한 것입 InnerExceptions 하고 저장합니다.

난 이해하지 못하는 질문-당신이 확장하는 시스템입니다.예외는 아닙니다,당신은 이미 추가 를 필드입니다.는 어디에 속하는-공공의 재산을 제외 자체입니다.

를은 http 모듈은 기록하는 처리하지 않은 예외가 있습니다.

나는 그냥한 제한의 를,지 않기 때문에 저장 사용자 정의 필드가 있습니다.나 요구해야 할 것이다 그 사람들.내가 있는 추가 필드에 있는 응답에 대한 데이터,하지만 를 저장하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top