Exception handling 在业务层生成的UI上显示异常消息的建议方法是什么?

Exception handling 在业务层生成的UI上显示异常消息的建议方法是什么?,exception-handling,error-handling,presentation-layer,Exception Handling,Error Handling,Presentation Layer,使用从业务层抛出的异常在表示层中创建用户友好的消息是否有一种模式或“最佳实践” 实际上,在许多情况下,我更喜欢抛出应用程序异常,这迫使我在UI(aspx.cs页面)上捕捉它们。如果这个过程很复杂,可能会产生许多不同类型的异常,我必须有许多catch块来产生特定的错误消息 你有没有更好的办法?类似情况下的模式 首先谢谢你:我认为最好的做法是在我现在可以处理的代码中捕获异常。如果我不能处理,就让它提升到更高的水平 第二:有可能在全球范围内捕获异常: public static void Regist

使用从业务层抛出的异常在表示层中创建用户友好的消息是否有一种模式或“最佳实践”

实际上,在许多情况下,我更喜欢抛出应用程序异常,这迫使我在UI(aspx.cs页面)上捕捉它们。如果这个过程很复杂,可能会产生许多不同类型的异常,我必须有许多catch块来产生特定的错误消息

你有没有更好的办法?类似情况下的模式


首先谢谢你:我认为最好的做法是在我现在可以处理的代码中捕获异常。如果我不能处理,就让它提升到更高的水平

第二:有可能在全球范围内捕获异常:

public static void RegisterExceptionHandler()
{
    Application.ThreadException += new System.Threading.ThreadExceptionEventHandler    (Application_UIThreadException);
    Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);

    AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
}

在此异常处理方法中,捕获所有未处理的异常。在这里,您可以通知用户发生了“意外”事件。

您可以使用自定义异常类通过异常将错误返回到UI层。然后,这些自定义异常可能包含对用户有意义的错误消息,因此您可以像显示任何其他错误消息一样显示该消息

这样,您将只需要在UI中使用一个异常处理程序,而不是针对每种类型的错误使用多个异常处理程序