将错误消息传达给UI的建议做法

时间:2013-12-02 11:58:44

标签: c# wpf wcf error-handling

您可以建议哪种方法来处理从API到UI的错误消息?

在我参与的其他项目中,我们向UI发送了错误代码,然后UI从文件中读取相应的消息,该文件可能只是另一个类或resx。他们说这对本地化很有用。

我在某处读过,抛出异常是一种很好的做法。我只是担心如果错误未在UI端捕获,程序将崩溃。

我正在使用WPF作为UI,稍后将使用WCF来获取服务。这是一个Windows应用程序。

1 个答案:

答案 0 :(得分:1)

我建议抛出正常的.NET异常,以防API端出现错误。使用错误代码的最大缺点是,根据应用程序层的组织方式(DAL - >业务逻辑 - > API - > UI),传播和处理它们可能会非常成问题。

除了异常之外,您可以在任何级别轻松处理它们(通过使用try-catch构造)并重新抛出(例如,当您只需要记录异常并且在堆栈的下方有一个代码时)自己处理它或“吞下”它们(虽然通常不推荐)。

至于如何处理UI级别的错误,我会让它们“一直”流动,然后“装饰”它们(例如,通过显示带有一些细节和故障排除提示的模态对话框)。例如,如果您正在使用Web API,则只需从API返回适当的HTTP状态(401,403,500),并通过错误挂钩在客户端上处理它们,如$.ajaxError将显示某种模态对话。在这里,您不是在发明自己的报告错误的方式,而是利用HTTP规范已经定义的内容(因此,很容易理解行为并对其进行响应)。

我对WPF并不熟悉,但我认为在WinForms中应该有类似Application_Error的东西 - 一个事件处理程序,你可以通过显示一些不错的模态对话框来检查错误并“装饰”它。用户。

希望这有帮助。