The New Global Error Handling in ASP.NET Core 8

แชร์
ฝัง

ความคิดเห็น • 98

  • @MilanJovanovicTech
    @MilanJovanovicTech  11 หลายเดือนก่อน +2

    Get the source code for this video for FREE → the-dotnet-weekly.ck.page/global-errors
    Want to master Clean Architecture? Go here: bit.ly/3PupkOJ
    Want to unlock Modular Monoliths? Go here: bit.ly/3SXlzSt

  • @MrAlkazam
    @MrAlkazam 11 หลายเดือนก่อน +6

    Very nice! Short, concise and very useful - keep up the excellent work, Milan.

  • @Targeting-Must-End
    @Targeting-Must-End 11 หลายเดือนก่อน +2

    Thank you mam.
    Content is Perfect balance between very technical, useful and just about the right amount of watching time.
    Keep 'em rolling

  • @zdxzxzdxzx6780
    @zdxzxzdxzx6780 10 หลายเดือนก่อน +1

    Hey, Milan. Great work on your channel.
    Quick question. Why would we need a middleware or implementing a custom IExceptionHandler in order to have logging and problem details for internal server errors? Isn't the default UseExceptionHandler middleware doing this already? Thanks, respect!

    • @MilanJovanovicTech
      @MilanJovanovicTech  10 หลายเดือนก่อน

      It is, but I prefer taking control of this using my own

  • @f.d.9326
    @f.d.9326 11 หลายเดือนก่อน +1

    Thank you, Milan! Always up-to-date, I learned a lot from you in last month which helped me on my interviews!

    • @MilanJovanovicTech
      @MilanJovanovicTech  11 หลายเดือนก่อน

      How did the interviews go? 😁

    • @f.d.9326
      @f.d.9326 11 หลายเดือนก่อน

      @@MilanJovanovicTech still waiting for last circles, but so far - not bad :)

    • @f.d.9326
      @f.d.9326 11 หลายเดือนก่อน +1

      @@MilanJovanovicTech hello Milan, I'm happy to say I passed my technical and got a job with #1 shop in my country! Knowledge I got from your video about caching and Redis was probably the defining point. Thank you very much! You get a new long-term patreon sub as my gratitude!

    • @MilanJovanovicTech
      @MilanJovanovicTech  11 หลายเดือนก่อน

      @@f.d.9326 I'm thrilled for you! Keep crushing it 🔥🔥

  • @philiperiskallaleal6010
    @philiperiskallaleal6010 5 หลายเดือนก่อน

    Dear Milan, thank you for the amazing video. One thing that got me wondering was the Idea of multiple ExceptionHandlers, as you mentioned in your video. How could one ensure a specific order in which these Handlers would be invoqued in case of an Exception that came from an Endpoint from your controller? Ideally, I would suggest to always keep a GlobalExceptionHandler (just like the one you implemented in this video), plus any other specific Exception Handler.
    I thank you for your time, and I hope to hear from you soon.

    • @MilanJovanovicTech
      @MilanJovanovicTech  5 หลายเดือนก่อน

      They are called in order of registration

  • @alfonsdeda8912
    @alfonsdeda8912 10 หลายเดือนก่อน +1

    Hi Milan, great video, but how should I create a exception filter to handle API errors in caller api project, for example blazor?

    • @MilanJovanovicTech
      @MilanJovanovicTech  10 หลายเดือนก่อน

      Http Client? Delegating Handlers?

    • @alfonsdeda8912
      @alfonsdeda8912 10 หลายเดือนก่อน

      @@MilanJovanovicTech yes, but should I control status codes and log them? In my case I return problem details

  • @nicolaimagnussen1914
    @nicolaimagnussen1914 10 หลายเดือนก่อน +1

    Nice video as always my friend! In which place did you put the ProblemDetails class?

    • @MilanJovanovicTech
      @MilanJovanovicTech  10 หลายเดือนก่อน +1

      It's a built-in class

    • @nicolaimagnussen1914
      @nicolaimagnussen1914 10 หลายเดือนก่อน

      @@MilanJovanovicTech from which Library?

    • @nicolaimagnussen1914
      @nicolaimagnussen1914 10 หลายเดือนก่อน

      I would guess you have imported a nuget package of some sort, or it is coming from some .NET core stuff? didnt know about this.

    • @MilanJovanovicTech
      @MilanJovanovicTech  10 หลายเดือนก่อน

      @@nicolaimagnussen1914 ASP .NET

    • @nicolaimagnussen1914
      @nicolaimagnussen1914 10 หลายเดือนก่อน

      @@MilanJovanovicTech That explains it, I was trying to use it in a function APP, btw I sent you an answer on Linkedin, hope you have not become to famous to answer? But I guess you just have a lot to do these days

  • @dariusghita9214
    @dariusghita9214 11 หลายเดือนก่อน +1

    i have got a problem, i am using sth similar to what you are doing for middleware, but my methods are called by background tasks done with quartz jobs. If i am calling the method manually from swagger/postmen it works, but with jobs doesn t

    • @MilanJovanovicTech
      @MilanJovanovicTech  11 หลายเดือนก่อน

      Middleware only work during the HTTP request pipeline - you'll have to add error handling yourself for background jobs

  • @W1ese1
    @W1ese1 11 หลายเดือนก่อน +2

    Is there ultimately any benefit of choosing one Vs the other approach?

    • @MilanJovanovicTech
      @MilanJovanovicTech  11 หลายเดือนก่อน +2

      Chaining exception handlers: www.milanjovanovic.tech/blog/global-error-handling-in-aspnetcore-8#chaining-exception-handlers

  • @haraheiquedossantos4283
    @haraheiquedossantos4283 6 หลายเดือนก่อน

    Good job.
    One question, why did you name the folder as /Infrastructure inside the Api project and not other name, like: /ExceptionHandlers?
    The old and traditional Middlewares you have put inside /Middlewares folder.
    And finally, in a real project using some layered architecture, would you put this implementation inside Infra layer or Presentation (where the WebApi resides) layer? 🤔

    • @MilanJovanovicTech
      @MilanJovanovicTech  6 หลายเดือนก่อน

      Two hard things in software engineering...

  • @davide1486566555
    @davide1486566555 10 หลายเดือนก่อน +1

    Hi Milan, I have .net 8 but my VS not recognize IExceptionHandler and his namespace. Can you give me some pointers?

    • @MilanJovanovicTech
      @MilanJovanovicTech  10 หลายเดือนก่อน

      No idea, it should be working on .NET 8 without any issues

  • @alexramossilva
    @alexramossilva 11 หลายเดือนก่อน +1

    Which validations should I run on the use cases, and which ones should I run on the domain?

    • @MilanJovanovicTech
      @MilanJovanovicTech  11 หลายเดือนก่อน

      Input validation - before use case
      Business rules - use case or domain (you decide)

  • @sigtrygguradv
    @sigtrygguradv 11 หลายเดือนก่อน +1

    Hey Milan, what extension are you using for inline debug variable/parameter info?

  • @shazaddin1
    @shazaddin1 11 หลายเดือนก่อน +1

    Hi, where can i access the code you used in the demonstration please?. Great video!

    • @MilanJovanovicTech
      @MilanJovanovicTech  11 หลายเดือนก่อน

      It's available on Patreon, check the video description

  • @ZubriQue
    @ZubriQue 11 หลายเดือนก่อน +1

    Hey, Milan! A little bit off-topic, but could you tell how I can map List classIds instead of List classes in an aggregate root (is it even possible)? I have 2 aggregates with one-to-many relationship. I heard Aggregates can have only id references to other aggregates. I get errors trying to create a migration with ef core.

    • @MilanJovanovicTech
      @MilanJovanovicTech  11 หลายเดือนก่อน +2

      Why complicate your life like that? 😁

    • @ZubriQue
      @ZubriQue 11 หลายเดือนก่อน

      @@MilanJovanovicTech You suggest reference classes instead of their ids? It's OK?

  • @nirajchandrajoshi
    @nirajchandrajoshi 9 หลายเดือนก่อน +2

    How to use this approach when we are using controllers ( not minimal api)

  • @pigrebanto
    @pigrebanto 9 หลายเดือนก่อน

    tks. Am I correct that when the Global-EH returns true, even if it is last in the middleware chain then its response by-passes all previous/before middlewares and it goes directly back to the client?

  • @sky3913
    @sky3913 5 หลายเดือนก่อน

    Hi Milan, in the MVC Web Application, how to display the error message to view (/Home/Error)?

    • @MilanJovanovicTech
      @MilanJovanovicTech  5 หลายเดือนก่อน

      No idea, haven't touched MVC in ages

  • @RanjeethMD
    @RanjeethMD 3 หลายเดือนก่อน

    Nice. Problem details object is a nice addition to the framework.

    • @MilanJovanovicTech
      @MilanJovanovicTech  3 หลายเดือนก่อน

      We had this forever, if I recall 🤔

  • @achalprajapati1192
    @achalprajapati1192 3 หลายเดือนก่อน

    Thank you, Milan! Always Good Technical Video Post. I have one question. How to handle unauthorized controller in global. How to all generic message display error or status code wise?

    • @MilanJovanovicTech
      @MilanJovanovicTech  3 หลายเดือนก่อน

      I'm not sure what exactly you're asking here

    • @achalprajapati1192
      @achalprajapati1192 3 หลายเดือนก่อน

      @@MilanJovanovicTech How to handle [Authorize] above write in controller in global error handling?

  • @nabeegh8766
    @nabeegh8766 8 หลายเดือนก่อน

    But The problem is i need to log the exception that occured on each endpoint in to a specific database table along with the request parameters and exception, so if i catch the exception globally how do i differentiate between the origin of the exception and where do i write the logic of the logging. in the middleware ?

  • @ahmedrizk106
    @ahmedrizk106 11 หลายเดือนก่อน

    to automatically convert different errors (bad request, conflict, not found) to a problem details will you introduce the status code param to the error object and create different problem details instance which will be mapped depending on the error status codes? or there is a simpler way to implement this?

    • @MilanJovanovicTech
      @MilanJovanovicTech  11 หลายเดือนก่อน +1

      Yes, add a status to Error and then map that to ProblemDetails

  • @crutz3064
    @crutz3064 7 หลายเดือนก่อน

    Is there a reason to use the IExceptionHandler instead of simply implementing your own middleware?

    • @MilanJovanovicTech
      @MilanJovanovicTech  7 หลายเดือนก่อน

      Just an alternative, no compelling reason other than being able to stack multiple IExceptionHandlers for different exception types

  • @pitthp
    @pitthp 7 หลายเดือนก่อน

    In swagger I sent an invalid json (without last bracket) and this code not activated and I got a generic error....

    • @MilanJovanovicTech
      @MilanJovanovicTech  7 หลายเดือนก่อน

      Oh

    • @pitthp
      @pitthp 7 หลายเดือนก่อน

      @@MilanJovanovicTech ? 😀 did you tested?

  • @LilPozzer
    @LilPozzer 11 หลายเดือนก่อน

    I'm interested in making videos like you do, but I have some reservations. I'm worried about potentially making mistakes, or not covering topics thoroughly or in an unusual manner. Do you have any advice for getting started and overcoming these fears? I understand that everyone errs occasionally, but it seems to be the main obstacle holding me back. Even though I'm not afraid of making mistakes on my work and other aspect of my life, but when it comes to teaching, it's just ah..

    • @MilanJovanovicTech
      @MilanJovanovicTech  11 หลายเดือนก่อน +2

      Just start, friend. Let your audience tell you if you made mistakes. Accept them, and try to do better next video. Nobody is perfect.

  • @juanpaoc1728
    @juanpaoc1728 4 หลายเดือนก่อน

    Does anyone how does he do to remove all the using statements and also set the class to public in Visual Studio? I can't find a way to do it 😭😭

    • @MilanJovanovicTech
      @MilanJovanovicTech  4 หลายเดือนก่อน +1

      It's some Visual Studio and ReSharper cleanup functions

  • @AzWatchYT
    @AzWatchYT 11 หลายเดือนก่อน +1

    Thank you for a great video!
    Milan, can you share this project source code for the convenience, please?

    • @MilanJovanovicTech
      @MilanJovanovicTech  11 หลายเดือนก่อน

      It's shared on Patreon. Some example here: www.milanjovanovic.tech/blog/global-error-handling-in-aspnetcore-8

    • @AzWatchYT
      @AzWatchYT 11 หลายเดือนก่อน

      @@MilanJovanovicTech Missed that link, thanks :)

  • @akashkarve1991
    @akashkarve1991 8 หลายเดือนก่อน

    Can repository return Result object?

  • @sunzhang-d9v
    @sunzhang-d9v 11 หลายเดือนก่อน +1

    IDateTimeProvider realization?

  • @taner-saydam
    @taner-saydam 11 หลายเดือนก่อน

    Thank you. I like that this feature. 🤩

  • @leulgirma
    @leulgirma 7 หลายเดือนก่อน

    Quality stuff ! keep it up

  • @ibrahimozdemir8015
    @ibrahimozdemir8015 หลายเดือนก่อน

    Thank you for this video bro

  • @YehorBachurinDev
    @YehorBachurinDev 8 หลายเดือนก่อน

    Very helpful, thanks

  • @lasindunuwanga5292
    @lasindunuwanga5292 11 หลายเดือนก่อน

    thank you very much

  • @mohamadmmm1481
    @mohamadmmm1481 11 หลายเดือนก่อน +1

    thanks

  • @deepakdutta2879
    @deepakdutta2879 6 หลายเดือนก่อน +1

    Beautiful

  • @UnleashedDan
    @UnleashedDan 11 หลายเดือนก่อน

    Milan looks to be losing his sanity after every thumbnail😅

  • @techpc5453
    @techpc5453 11 หลายเดือนก่อน