Обработка исключений в MVC [2 лучших метода обработки исключений]

Опубликовано: 2020-12-29

Обработка исключений в MVC в основном используется при создании бизнес-приложений, которые требуют определенных спецификаций и условий и имеют уникальные требования.

Давайте разберемся, что такое обработка исключений, и как она поможет вам в ваших приложениях.

Оглавление

Что такое обработка исключений?

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

Есть два важных способа обработки этих исключений.

  • Метод «поймай и заблокируй»
  • Метод обработки ошибок приложения.

Однако это не единственные методы, используемые для процесса.

Здесь мы обсудим различные шаги и методы, которые вы можете использовать для управления исключениями в MVC.

Метод обработки Try-Catch

Метод перехвата и блокировки считается традиционным методом, используемым для обработки исключений в приложениях на основе MVC. Вы будете регистрировать информацию об ошибке, используя этот метод.

Пытаться

{ добавить исключение;}

поймать (имя исключения)

{

возврат View («Ошибка»);

}

Вы вводите условие исключения в блоге try и добавляете имя исключения для блока catch. Когда исключение поймано в блоке catch, оно вернет указанную ошибку.

Это также можно использовать для обработки и регистрации всех ошибок в приложении.

Метод OnException

Этот метод позволяет переопределить метод OnException внутри класса контроллера. Код ошибки 500 используется для обработки всех зарегистрированных ошибок, возникающих в результате обработки исключений в MVC .

По сути, вы можете регистрировать и указывать представление исключения с помощью этого метода без цикла try. Вам не нужно включать конфигурацию <customErrors> в файле web.config, чтобы начать работу с этим методом.

открытый класс HomeController: Контроллер

{

общедоступный контакт ActionResult()

{

строка сообщения = ноль;

ViewBag.Message = msg.Length;

вернуть вид();

}

защищенное переопределение void OnException (ExceptionContext filterContext)

{

filterContext.ExceptionHandled = истина;

//Зарегистрировать ошибку!!

//Перенаправляем к действию

filterContext.Result = RedirectToAction("Ошибка", "Внутренняя Ошибка");

// ИЛИ вернуть конкретное представление

filterContext.Result = новый ViewResult

{

ViewName = "~/Views/Error/InternalError.cshtml"

};

}

}

Взгляните на приведенный выше код, и вы заметите, что OnException — это метод void, который принимает объект ExceptionContext в качестве аргумента.

Этот аргумент содержит всю информацию, необходимую для регистрации ошибки. Если вы установите ExceptionHandled=true, вы сможете легко регистрировать действия, сгенерированные конкретным контроллером.

Атрибут HandleError

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

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

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

Существует особый способ добавить этот атрибут, чтобы он работал по вашему желанию. Вы должны добавить фильтр атрибута HandleError внутри метода FilterConfig.RegisterGlobalFilters().

Наряду с этим вы должны убедиться, что режим пользовательских ошибок <CustomErrors mode = «on»> всегда включен в файле web.config. На этом этапе вы можете добавить атрибут в активный режим.

открытый класс HomeController: Контроллер

{

[HandleError]

общедоступный контакт ActionResult()

{

строка сообщения = ноль;

ViewBag.Message = msg.Length;

вернуть вид();

}

}

Код, который мы только что упомянули, лучше всего подходит для обработки контекста и исключений.

Здесь атрибут настроен для метода действия Contact(). Когда процесс скомпилирован, вы увидите файл Error.cshtml, отображаемый в режиме просмотра.

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

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

Метод не поддерживает исключения регистрации. Ему удается захватывать только исключения HTTP в коде 500. Он не может захватывать исключения от других контроллеров. Так что это не тот атрибут, который можно рассматривать на все случаи жизни и нужды.

Наследование от HandleError

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

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

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

Читайте также: Вопросы на собеседовании по обработке исключений

Событие Application_Error

Событие Application_Error — это еще один метод обработки ошибки приложения и управления исключениями. Эта часть требует, чтобы вы управляли событием Application_Error в файле global.asax.

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

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

Управление ошибками HTTP

Упомянутый здесь метод не может обрабатывать ни одно из исключений HTTP. Мы говорим об исключениях, таких как «Файл не найден» и других подобных распространенных сообщениях об ошибках, которые вы обязательно получите.

Вам нужно будет ввести сведения об ошибке и код ошибки в синтаксисе для управления этими исключениями.

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

Чтобы расширить свои знания о бизнес-приложениях и освоить языки программирования, присоединяйтесь к upGrad .

Благодаря множеству курсов и ряду вариантов карьеры вы расширите свои карьерные возможности.

Свяжитесь с нашими экспертами или закажите звонок с нами, чтобы узнать больше о вариантах, персонализированных для вас.

Запишитесь на курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Заключение

Имея дело с обработкой исключений в MVC , вы должны убедиться, что выбранный вами метод позволяет записывать все возможные ошибки. Вы должны иметь возможность повторно использовать компоненты и управлять всеми ошибками приложений. Узнайте об обработке исключений в Java.

Если вы хотите, чтобы один метод обрабатывал все возможные исключения, вам следует выбрать метод Global Application_Error . Он обязательно регистрирует все ошибки вместе с <CustomErrors> и обеспечивает их запись в файле Web.Config.

С помощью этого метода пользователь перенаправляется на определенные страницы, когда сталкивается с ошибкой. Обработка исключений — одна из основных концепций разработки приложений с использованием ASP.Net MVC.

Мы надеемся, что эта статья была полезной для изучения обработки исключений в MVC; пожалуйста, изучите наши блоги, чтобы узнать больше о различных приложениях.

Если вам интересно узнать больше о разработке полного стека, ознакомьтесь с программой Executive PG upGrad и IIIT-B по разработке программного обеспечения с полным стеком, которая предназначена для работающих профессионалов и предлагает более 500 часов тщательного обучения, более 9 проектов и задания, статус выпускника IIIT-B, практические практические проекты и помощь в трудоустройстве в ведущих фирмах.

Станьте разработчиком полного стека

Подать заявку на получение степени магистра в области разработки программного обеспечения