Obsługa wyjątków w MVC [Najlepsze metody obsługi wyjątków 2]

Opublikowany: 2020-12-29

Obsługa wyjątków w MVC jest głównie używana podczas tworzenia aplikacji biznesowych, które wymagają określonych specyfikacji i warunków oraz mają unikalne wymagania.

Przyjrzyjmy się szczegółowo, czym jest obsługa wyjątków i jak pomaga w pracy z aplikacjami.

Spis treści

Co to jest obsługa wyjątków?

Jest to proces radzenia sobie i reagowania na wyjątkowe warunki, które występują i wymagają określonych metod; należy to uwzględnić w aplikacjach biznesowych, aby poprawić wyniki i zapewnić, że wszystkie wymagania są odpowiednio obsługiwane.

Istnieją dwa istotne sposoby obsługi tych wyjątków

  • Metoda chwytania i blokowania
  • Metoda obsługi błędów aplikacji.

Nie są to jednak jedyne metody stosowane w tym procesie.

W tym miejscu omówimy różne kroki i techniki, których można użyć do zarządzania wyjątkami w MVC.

Metoda obsługi Try-Catch

Metoda catch i block jest uważana za tradycyjną metodę używaną do obsługi wyjątków w aplikacjach opartych na MVC. Za pomocą tej metody będziesz rejestrować informacje o błędzie.

Próbować

{ dodaj wyjątek;}

złapać (nazwa wyjątku)

{

powrót Widok („Błąd”);

}

Warunek wyjątku wpisujesz w blogu try i dodajesz nazwę wyjątku dla bloku catch. Gdy wyjątek zostanie przechwycony w bloku catch, zwróci wymieniony błąd.

Można to również wykorzystać do obsługi i rejestrowania wszystkich błędów w aplikacji.

Metoda OnException

Ta metoda umożliwia przesłonięcie metody OnException w klasie kontrolera. Kod błędu 500 służy do obsługi wszystkich zarejestrowanych błędów wynikających z obsługi wyjątków w MVC .

Zasadniczo możesz rejestrować i określać widok wyjątku za pomocą tej metody bez pętli try. Aby rozpocząć korzystanie z tej metody, nie trzeba włączać konfiguracji <customErrors> w pliku web.config.

Klasa publiczna HomeController: Kontroler

{

public ActionResult Kontakt()

{

ciąg msg = null;

ViewBag.Message = msg.Length;

zwróć Widok();

}

protected override void OnException(ExceptionContext filterContext)

{

filterContext.ExceptionHandled = prawda;

//Zarejestruj błąd!!

//Przekieruj do działania

filterContext.Result = RedirectToAction(„Błąd”, „Błąd wewnętrzny”);

// LUB zwróć konkretny widok

filterContext.Result = nowy ViewResult

{

ViewName = „~/Views/Error/InternalError.cshtml”

};

}

}

Spójrz na powyższy kod, a zauważysz, że OnException jest metodą void i jako argument przyjmuje obiekt ExceptionContext.

Ten argument zawiera wszystkie informacje wymagane do zarejestrowania błędu. Jeśli ustawisz ExceptionHandled=true, będziesz mógł z łatwością rejestrować akcje generowane z określonego kontrolera.

Atrybut HandleError

Jest to kolejna popularna metoda obsługi wyjątków i zarządzania błędami w ramach MVC Twojej aplikacji. Jeśli zauważysz błędy utworzone przez metodę akcji lub kontroler, powinieneś użyć tej metody.

Za pomocą tego atrybutu możesz wybrać wyświetlanie niestandardowego widoku dla konkretnego wyjątku. Może się to zdarzyć w metodzie akcji lub kontrolerze.

Ponownie, ta metoda jest również używana podczas zarządzania błędami z kodem 500. Za pomocą tej metody nie można rejestrować wyjątków.

Istnieje szczególny sposób na dodanie tego atrybutu, aby działał na Twoje żądanie. Należy dodać filtr atrybutu HandleError wewnątrz metody FilterConfig.RegisterGlobalFilters().

Oprócz tego należy upewnić się, że tryb błędów niestandardowych <CustomErrors mode = „on”> jest zawsze włączony w pliku web.config. W tym momencie możesz dodać atrybut do aktywnego trybu.

Klasa publiczna HomeController: Kontroler

{

[Błąd obsługi]

public ActionResult Kontakt()

{

ciąg msg = null;

ViewBag.Message = msg.Length;

zwróć Widok();

}

}

Kod, o którym właśnie wspomnieliśmy, najlepiej sprawdza się w kontekście potrzeb związanych z obsługą kontekstu i wyjątków.

Tutaj atrybut jest skonfigurowany dla metody akcji Contact(). Po skompilowaniu procesu zobaczysz plik Error.cshtml wyświetlany w trybie widoku.

Nastąpi to tylko wtedy, gdy wystąpi wyjątek. Jest to domyślny widok we wszystkich wyjątkowych przypadkach. Możesz również użyć tego atrybutu, aby skonfigurować różne strony do zarządzania różnymi typami wyjątków.

Chociaż ten atrybut doskonale sprawdza się w przypadku obsługi błędów i zarządzania wszystkimi typami konfiguracji, może nie działać wszędzie. Wybierz go w niektórych przypadkach, w których uważasz, że pomoże w Twojej aplikacji.

Metoda nie obsługuje wyjątków rejestrowania. Udaje się przechwytywać tylko wyjątki HTTP w kodzie 500. Nie może przechwytywać wyjątków z innych kontrolerów. Tak więc nie jest to atrybut, który można brać pod uwagę przy wszystkich okazjach i potrzebach.

Dziedziczenie z HandleError

Możesz nawet użyć tej metody do obsługi wyjątków. Powyższa metoda, o której mówiliśmy, nie pozwala na ponowne wykorzystanie komponentów, co można uznać za wadę.

Nie możesz działać, jeśli musisz zachować kodowanie dla wszystkich wyjątków, które muszą być rejestrowane.

W rezultacie będziesz musiał użyć tego rozszerzenia. Pozwala dziedziczyć po atrybucie HandleError i używać go w określonym kontrolerze. W rezultacie możesz obsługiwać wyjątki bez konieczności zbyt częstego kodowania.

Przeczytaj także: Pytania do wywiadu dotyczące obsługi wyjątków

Zdarzenie Application_Error

Zdarzenie Application_Error to kolejna metoda obsługi błędu aplikacji i zarządzania wyjątkami. Ta część wymaga kontrolowania zdarzenia Application_Error w pliku global.asax.

Możesz wyzwolić to zdarzenie dla wszystkich typów kodów błędów i obsługi wyjątków w MVC , co ułatwia korzystanie i jest jedną z najlepszych metod obsługi wyjątków.

Wykorzystuje to podstawową metodę rejestrowania błędów, która może służyć do zarządzania wszystkimi wyjątkami, które nie są obsługiwane w aplikacji.

Zarządzanie błędami HTTP

Wspomniana tutaj metoda nie obsługuje żadnego z wyjątków HTTP. Mówimy o wyjątkach, takich jak „Nie znaleziono pliku” i innych tego typu typowych komunikatach o błędach, które z pewnością otrzymasz.

Aby zarządzać tymi wyjątkami, musisz wprowadzić szczegóły błędu i kod błędu w składni.

Będziesz musiał zanotować wszystkie możliwe kody błędów i komunikaty, które prawdopodobnie otrzymasz jako część aplikacji, zanim zwolnisz składnię.

Aby poszerzyć swoją wiedzę na temat aplikacji biznesowych i zdobyć biegłość w językach programowania, dołącz do upGrad .

Dzięki szerokiej gamie kursów i szerokiej gamie opcji kariery zwiększysz swoje możliwości zawodowe.

Połącz się z naszymi ekspertami lub umów się na rozmowę telefoniczną, aby dowiedzieć się więcej o spersonalizowanych opcjach.

Zapisz się na kursy inżynierii oprogramowania z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

Kiedy masz do czynienia z obsługą wyjątków w MVC , musisz upewnić się, że wybrana metoda pozwala na zarejestrowanie wszystkich możliwych błędów. Powinieneś być w stanie ponownie wykorzystać komponenty i zarządzać wszystkimi błędami aplikacji. Dowiedz się o obsłudze wyjątków w Javie.

Jeśli chcesz, aby pojedyncza metoda obsługiwała wszystkie możliwe wyjątki, powinieneś wybrać metodę Global Application_Error . Zapewnia rejestrowanie wszystkich błędów wraz z <CustomErrors> i zapewnia, że ​​są one rejestrowane w Web.Config.

Dzięki tej metodzie użytkownik jest przekierowywany do określonych stron, gdy napotka błąd. Obsługa wyjątków to jedna z podstawowych koncepcji tworzenia aplikacji przy użyciu ASP.Net MVC.

Mamy nadzieję, że ten artykuł był wnikliwy, aby dowiedzieć się o obsłudze wyjątków w MVC; przejrzyj nasze blogi, aby dowiedzieć się więcej o różnych zastosowaniach.

Jeśli chcesz dowiedzieć się więcej o tworzeniu pełnego stosu, sprawdź program Executive PG UpGrad i IIIT-B w zakresie tworzenia pełnego stosu oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznych szkoleń, ponad 9 projektów i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Zostań programistą Full Stack

Aplikuj teraz na studia magisterskie z inżynierii oprogramowania