Maison > développement back-end > Tutoriel C#.Net > Comment gérer les erreurs dans le middleware C# Asp.net Core ?

Comment gérer les erreurs dans le middleware C# Asp.net Core ?

王林
Libérer: 2023-09-02 11:01:12
avant
864 Les gens l'ont consulté

如何处理中间件 C# Asp.net Core 中的错误?

Créez un nouveau dossier et une classe appelée CustomExceptionMiddleware ExceptionMiddleware.cs est à l’intérieur.

La première chose que nous devons faire est d'enregistrer le service IloggerManager et Implémentez RequestDelegate via l’injection de dépendances.

Le paramètre _next de type RequestDeleagate est un délégué de fonction qui peut être traité Notre requête HTTP.

Après le processus d'inscription, nous devons créer la méthode InvokeAsync() RequestDelegate ne peut pas gérer les demandes sans cela.

_le prochain délégué doit gérer la demande de notre contrôleur et les opérations Get devrait générer une réponse positive. Mais si la requête échoue (et elle échoue, Puisque nous forçons une exception),

notre middleware déclenchera le bloc catch et appellera HandleExceptionAsync méthode.

public class ExceptionMiddleware{
   private readonly RequestDelegate _next;
   private readonly ILoggerManager _logger;
   public ExceptionMiddleware(RequestDelegate next, ILoggerManager logger){
      _logger = logger;
      _next = next;
   }
   public async Task InvokeAsync(HttpContext httpContext){
      try{
            await _next(httpContext);
      }
      catch (Exception ex){
         _logger.LogError($"Something went wrong: {ex}");
         await HandleExceptionAsync(httpContext, ex);
      }
   }
   private Task HandleExceptionAsync(HttpContext context, Exception exception){
      context.Response.ContentType = "application/json";
      context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
      return context.Response.WriteAsync(new ErrorDetails(){
         StatusCode = context.Response.StatusCode,
         Message = "Internal Server Error from the custom middleware."
      }.ToString());
   }
}
Copier après la connexion

Modifiez notre classe ExceptionMiddlewareExtensions avec une autre méthode statique −

public static void ConfigureCustomExceptionMiddleware(this IApplicationBuilder
app){
   app.UseMiddleware<ExceptionMiddleware>();
}
Copier après la connexion

Utilisez cette méthode dans la méthode de configuration de la classe Startup -

app.ConfigureCustomExceptionMiddleware();
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal