在WCF中,是否存在捕获未处理异常的事件或方法,或者我是否需要在任何方法中放置try / catch?
答案 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";
}
}