C# Webservice:使用 JSON 中的额外属性引发异常

发布于 2024-08-23 14:31:03 字数 619 浏览 7 评论 0原文

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

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

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 的自定义异常。 我的网络服务返回 JSON 格式的结果。

我的问题是如何将我的属性传递给客户端 JSON 响应?

I have a webservice written in C#. When errors occur on the server, I would like to inform the user client side. This works fine by throwing exceptions server side, which is then sent to my error handler client side.

However, I would like to, when I throw the exception, to set a property describing how serious I think the error is at this point. Thus I can decide client side how to display the error:

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 
        ...
    }
}

My solution so far has been to create a custom exception inheriting from System.Exception.
My webservice returns with a JSON formatted result.

My problem is how to get my property through to the client side JSON response?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

望她远 2024-08-30 14:31:03

Web 服务:

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

Web service:

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 = "!!!!";
  }
}

Then check Response.HasError

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文