5

在 WCF 中,是否有捕获未处理异常的事件或方法,或者我是否需要在任何方法中放置 try/catch?

4

2 回答 2

7

是的,创建一个实现IErrorHandler接口的类:

允许实现者控制返回给调用者的错误消息,并可选择执行自定义错误处理,例如日志记录。

于 2010-04-29T00:40:32.817 回答
0

你应该做内部和外部的 TRY/Catch 块。

所以第一种方法从 Try

然后,如果在另一个方法中抛出任何东西,它默认为您在公开方法中的方法中的通用捕获,以将值返回给客户端。

我总是在我的 catch 块中使用日志记录来告诉管理员出了什么问题,但我让外部 catch 返回一个值,例如“请除了我们的 Appogies WCF.Blah 服务失败。请查看服务器日志以获取完整的详细信息”

通过这种方式,您可以向客户提供错误处理、日志记录和漂亮的消息。

public class Service1 : IService1
    {
    public string GetData(int value)
    {
        try
        { 
            return somemethod(value);
        }
        catch(Exception ex)
        {
            LoggingHelper.Log(ex);
            return "Please Except our Appogies the WCF.Blah service has failed. Please review the server logs for complete details";
        }
    }
于 2010-04-29T18:59:30.900 回答