我想知道是否有一种好方法可以将系统生成的错误转换为对用户更有意义的东西。例如,如果由于某种原因应用程序无法连接到 SMTP 服务器。我想将系统抛出的消息(类似于“SMTP 连接失败”)转换为“我们无法向您发送电子邮件”。我想从资源文件中提取这条友好消息。虽然这是一个此类例外的示例,但可能还有更多。
我们没有尝试在所有层中捕获块。它仅存在于 UI 层中。我们有一个异常管理类,它接受所有异常并从中返回一个友好的字符串。UI 层中的每个 catch 块都会调用此异常管理类,并将 System.Exception 类型的异常传递给它,该异常的方法需要返回所述友好错误字符串以在 UI 上使用。
我现在能想到的唯一方法是在异常管理类中设置一个大的 IF ELSE 块,用于检查接收到的异常字符串并从资源文件中提取匹配的友好消息。
有没有更好的方法来解决这个问题?