C#Webservice:在JSON中抛出具有额外属性的异常

时间:2010-02-26 12:06:45

标签: c# json exception web-services custom-exceptions

我有一个用C#编写的web服务。当服务器上发生错误时,我想通知用户客户端。通过抛出异常服务器端,然后将其发送到我的错误处理程序客户端,这可以正常工作。

但是,当我抛出异常时,我想设置一个属性来描述我认为错误在这一点上有多严重。因此,我可以决定客户端如何显示错误:

WebService.Method(some_value, handle_response, handle_error);

function handle_response (response) {
    //Do something...
}

function handle_error (error) {
    if(error.level === 'Critical') {
        //Show critical message.
    } else if(error.level === 'Warning') {
        //Show warning message.
    } else 
        ...
    }
}

到目前为止,我的解决方案是创建一个继承自System.Exception的自定义异常。 我的webservice返回JSON格式化结果。

我的问题是如何让我的属性通过客户端JSON响应?

1 个答案:

答案 0 :(得分:3)

网络服务:

     public Response zzz()
        {
          Response result;
           try
        {
         ...
        }
        catch(MyException)
        {
          result.HasError = true;
          result.Error.Level = Normal;
          result.Error.Message = "It's OK.";
        }
        catch(Exception)
        {
result.HasError = true;
          result.Error.Level = Critical;
          result.Error.Message = "!!!!";
        }
        }

然后检查Response.HasError