Какой предложенный способ показать сообщения об исключении на UI, которые были произведены в бизнес-уровне?

StackOverflow https://stackoverflow.com/questions/2766309

Вопрос

Есть ли шаблон или «лучшая практика» на создании дружественных сообщений пользователя в слое презентации с помощью исключения, которые были брошены из бизнес-слоя?

На самом деле во многих случаях я предпочитаю бросать исключения приложений, и это заставляет меня ловить их на UI (страницы aspx.cs). И если процесс является сложным, который может производить много различных типов исключений, мне необходимо иметь много блоков CALL для получения конкретных сообщений об ошибках.

Есть ли лучший способ приходить на ваш разум? Узор, может быть, для подобных случаев?

Спасибо

Это было полезно?

Решение

Вы можете использовать пользовательский класс исключения для возврата ошибок с помощью исключения на слой UI. Эти пользовательские исключения могут содержать сообщение об ошибке, которое будет значимым для пользователя, поэтому вы можете отобразить, что так же, как будто вы будете любые другие сообщения об ошибке.

Таким образом, вам понадобится один обработчик исключения только в интерфейсе UI, а не многие для каждого типа ошибки ...

Другие советы

Во-первых: Я думаю, что это лучшая практика только для достижения исключения в коде, которую я могу справиться с этим временем. Если я не могу справиться, просто позвольте ему продвигать на более высокий уровень.

Во-вторых: есть возможность ловить исключения во всем мире:

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

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

В этом методах обработки исключений все исключения, которые не были обработаны, ловятся. Здесь вы можете уведомить пользователя о том, что что-то «неожиданное» случилось.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top