【发布时间】:2013-03-18 11:39:15
【问题描述】:
我想知道是否有一种好方法可以将系统生成的错误转换为对用户更有意义的内容。例如,如果由于某种原因应用程序无法连接到 SMTP 服务器。我想将系统抛出的消息(类似于“SMTP 连接失败”)转换为“我们无法向您发送电子邮件”。我想从资源文件中提取这条友好消息。虽然这是一个此类例外的示例,但可能还有更多。
我们没有跨所有层的 try catch 块。它仅存在于 UI 层中。我们有一个异常管理类,它接受所有异常并从中返回一个友好的字符串。 UI 层中的每个 catch 块都会调用此异常管理类,并将 System.Exception 类型的异常传递给它,该异常的方法需要返回所述友好的错误字符串以在 UI 上使用。
我现在能想到的唯一方法是在异常管理类中设置一个大的 IF ELSE 块,用于检查接收到的异常字符串并从资源文件中提取匹配的友好消息。
有没有更好的方法来解决这个问题?
【问题讨论】:
-
IMO,这是一个好方法。资源文件或数据库表,简而言之,有一个占位符,您可以在其中映射错误代码或过于技术性的错误消息与您自己的自定义友好消息。对于未映射的消息,您可以为用户提供一般友好的消息。
标签: .net asp.net-mvc asp.net-mvc-4 exception-handling