【发布时间】:2013-08-01 15:57:41
【问题描述】:
这听起来像是一个愚蠢的问题,但我想就此收集一些意见。我习惯于看到两种处理异常消息的方式。首先有一个简单的模式,您可以直接向用户显示Message:
try
{
service.Update();
}
catch (Exception ex)
{
ShowMessage(ex.Message);
}
处理异常的另一种方法是考虑强类型异常,以表示随后由“控制器”类(或任何处理向用户推送信息的代码)解释的东西:
try
{
service.Update();
}
catch (NetworkException ex)
{
ShowMessage("Network is unavailable.");
}
catch (Exception ex)
{
ShowMessage("Something went wrong with the update.");
}
第一种方法要求异常使用的每条消息(无论是由调用代码在构造函数中传递还是在强类型异常中管理)都是“用户就绪的”(干净、正确制定和本地化等)。第二种方法将此责任转移给控制器代码。此外,它可能需要非常具体的强类型异常,以确保每个 catch 块都能够正确解释它们。
那么 Exception 类的 Message 属性(在 C#、Java...中)是针对谁的呢?最终用户还是程序员?
谢谢,
【问题讨论】:
-
如果您真的想从
Exception公开某些内容,请改用ToString()方法。它提供了更多更好的内容。
标签: c# java oop exception-handling