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?}");
});
}
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();
}
}
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.
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.