这是正确的异常处理的有效示例吗?

时间:2012-01-13 16:14:52

标签: exception language-agnostic exception-handling error-handling

我一直在努力阅读更多关于如何正确捕获/处理异常的信息,但我认为我没有把它弄下来。事实上,我认为我变得更加困惑并且可能实现了错误的代码。我不想那样做。

我一直在使用的示例设置:

  1. 移动设备调用WCF服务。
  2. WCF服务从数据库中检索数据,如果在数据库级别发生任何错误,则会记录它们并向我发送电子邮件。
  3. WCF服务将数据(或异常的简要说明)发送到移动设备。
  4. 移动设备处理数据,如果发生任何错误,则将错误抛出到UI层。
  5. 对于一些例外情况,我创建了自定义的例外 - 服务异常,授权异常,因此我可以正确地通知用户。如果服务遇到错误或发生IOException,将通知用户“无法检索数据。”

    但是,如果发生另一个错误 - 例如JSON错误,或类似“以防万一”的错误,那么错误将被抛出到UI层并被简单地捕获为Exception,因为我们没有确实需要用户知道发生了什么,但发生了错误。

    这是否适当处理异常?

2 个答案:

答案 0 :(得分:0)

你有没有看到任何问题?

一般来说,拥有允许用户继续工作的某种特色是有道理的。这应该与任何showstoppers的适当处理相结合,让用户优雅地下来,并抓住任何其他会导致危险的事情。

答案 1 :(得分:0)

“适当的异常处理”总是a)依赖于应用程序而b)是主观的 - 所以没有确定的答案。

一般来说,我会说你需要做以下所有事情:

  1. 专门处理和处理所有可能的异常。
  2. 提供全部捕获以防止非正常终止。
  3. 如果有潜在影响,请通知用户意外错误 他们的数据或用法(即 - 不掩盖可能影响用户的错误)
  4. 听起来你已经这样做了,所以我相信你有一个合理的方法。