1. Wprowadzenie do ASP.NET
  2. Szybki start
  3. Struktura projektu
  4. Tworzenie kontrolerów i akcji
  5. Routing
  6. Modelowanie danych
  7. Widoki RazorViewEngine i TagHelpers
  8. Dostęp do danych
  9. Middleware
  10. Implementacja uwierzytelnienia
  11. Obsługa błędów
  12. Stylowanie aplikacji
  13. Implementacja serwisów RESTful
  14. Implementacja WebSocketów
  15. Testowanie aplikacji
  16. Debugowanie aplikacji
  17. Wdrażanie aplikacji
  18. Integracja z innymi technologiami
  19. Podsumowanie

Obsługa błędów

Obsługa błędów jest ważnym elementem każdej aplikacji internetowej. W ASP.NET Core istnieje wiele sposobów na obsługę błędów, a jednym z najprostszych i najskuteczniejszych sposobów jest skorzystanie z middleware'ów UseExceptionHandler i UseStatusCodePages.

Przykład konfiguracji obsługi błędów w ASP.NET Core:

										
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
  if (env.IsDevelopment())
  {
      app.UseDeveloperExceptionPage();
  }
  else
  {
    app.UseExceptionHandler("/Error");
    app.UseHsts();
  }

  app.UseStatusCodePagesWithReExecute("/Error/{0}");

  // pozostałe middlewares

  app.UseHttpsRedirection();
  app.UseStaticFiles();
  app.UseRouting();
  app.UseAuthentication();
  app.UseAuthorization();
  app.UseEndpoints(endpoints =>
  {
      endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
  });
}
										
								
Wyjaśnienie

W powyższym przykładzie, w zależności od trybu uruchomienia aplikacji (tryb deweloperski lub produkcyjny), używany jest odpowiedni middleware: UseDeveloperExceptionPage w trybie deweloperskim lub UseExceptionHandler i UseHsts w trybie produkcyjnym. Middleware UseStatusCodePagesWithReExecute umożliwia wyświetlanie komunikatów błędów w przypadku niepowodzenia żądania HTTP.

Akcja Index obsługująca wyjątki i wyświetlająca komunikaty błędów:

										
public class ErrorController : Controller
{
  [Route("Error/{statusCode}")]
  public IActionResult Index(int statusCode)
  {
    switch (statusCode)
    {
      case 404:
        ViewBag.ErrorMessage = "Nie znaleziono strony.";
        break;

      default:
        ViewBag.ErrorMessage = "Wystąpił błąd.";
        break;
    }

return View();
  }
}
										
								
Wyjaśnienie

W tym przypadku, akcja Index obsługuje błędy HTTP, takie jak 404 lub 500, i wyświetla odpowiednie komunikaty błędów na widoku Error.cshtml.

Ważne

Obsługa błędów jest bardzo ważna dla poprawnej pracy aplikacji internetowej, a dzięki wbudowanym middleware'om w ASP.NET Core oraz zaimplementowaniu odpowiedniego kontrolera i widoków, można zapewnić użytkownikom wysoki poziom dostępności i wygodne korzystanie z aplikacji.