2013-08-28 3 views
0

WCF 서비스의 예외 처리와 관련된 문제가 있습니다. 제발 누구든지 이걸 도와 줄 수있어.WCF 서비스에서 DLL에서 처리 예외가 발생했습니다.

내 문제 : -

내가 모바일 애플리케이션을 위해 개발하고 WCF 서비스가 있습니다. 내 WCF 서비스에는 클래스 A가있는 클래스 라이브러리 프로젝트가 있습니다.이 클래스에서는 webconfig 파일의 appsetting 블록 (예 : UserID)에서 값을 얻는 메서드를 정의했습니다.

webconfig에서 해당 설정을 정의하는 것을 잊어 버린 경우 예외가 해당 메소드의 try catch 블록에 들어옵니다. (이 단계에서는 모두 문제가 없습니다.)하지만 이상적으로 예외는 각각의 WCF 서비스 메소드의 catch 블록에도 있어야합니다. 나는 그 Class A 방법이라고 부르고있다.

내 경우에는이 문제가 해결되지 않습니다. 나는를 ClassA 작성

코드가

public static string Method() 
{ 
    try 
    { 
     string strdata = ConfigurationManager.AppSettings["UserID"].ToString(); 
     return strdata; 
    } 
    catch (Exception e1) 
    { 
     throw e1; 
    } 
} 

코드는 WCF 서비스로 작성 (클래스 라이브러리 프로젝트에 배치)에 refrence

에 대한 코드 아래에 제공하고있다 : -

try 
{ 
    ClassA.Method(); 
} 
catch (Exception e2) 
{ 

} 

위의 코드에서 내가 잊어 버린 경우 Webconfig 파일에서 UserID 설정을 정의하기 위해 예외가 WCF 서비스 메소드의 catch 블록에 있어야하지만 발생하지 않습니다.

답변

0

왜 WCF 코드에 나타나지 않는지 확신 할 수 없지만 throw e1을 사용하면 오류의 스택 추적이 손실되는 것이 일반적으로 나쁜 것으로 간주됩니다.

솔직히 말해서 나는 잘못된 이유로 try-catch 블록을 사용하고 있다고 생각합니다. 모든 try catch 코드없이 반환 값이 비어 있거나 null인지 쉽게 확인할 수 있습니다. ConfigurationManager.AppSettings은 문자열을 반환합니다. .ToString()을 호출하면됩니다 (항목이없는 경우 null 참조 예외가 발생 함).

내가 코드 이런 식으로 다시 것입니다 : 당신의 WCF 코드에서

public static string Method() 
{ 

    return ConfigurationManager.AppSettings["UserID"]; 
} 

: 그리고

string userID = ClassA.Method(); 

if (String.IsNullOrEmpty(userID)) 
{ 
    // Do something with the error here 
} 
+0

감사합니다 팀을. 나는 이것이 잘 보이는 이것을 시도 할 것이다. – VSoni

관련 문제