在WCF中捕获未处理的异常

时间:2010-04-29 00:36:22

标签: .net wcf exception-handling unhandled-exception

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

2 个答案:

答案 0 :(得分:7)

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

  

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

答案 1 :(得分:0)

你应该做内外TRY / Catch Block。

所以第一种方法以Try

开头

然后,如果在另一个方法中抛出任何内容,则默认为在公开方法中的方法中的泛型catch,以将值返回给客户端。

我总是使用我的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";
        }
    }