代码改变世界

WCF RIA Service错误处理

2012-12-14 15:05  slmk  阅读(385)  评论(0编辑  收藏  举报

1、服务器端错误处理:

[EnableClientAccess()]
public class DomainService1 : DomainService
{    
  public IEnumerable<Customer> GetCustomers()    
  {        
    throw new ApplicationException("My exception");    
  }    
  protected override void OnError(DomainServiceErrorInfo errorInfo)    
  {         
    //记录错误
  } }

可以在web.config中设置出现错误时导航到错误页:

<customErrors mode="On" defaultRedirect="GenericErrorPage.htm"/>

2、客户端错误处理:

当SL执行load操作时,会抛出异常,如果没有处理会调用Application_UnhandledException,引起白屏。可以这样处理:

customerDomainContext.Load<Customer>(ds.GetCustomersQuery(),  
loadOperation =>
{
if (loadOperation.HasError)
  {
    MessageBox.Show(loadOperation.Error.Message);
    loadOperation.MarkErrorAsHandled();
  }
}
,null);