How to handle Node.js errors like a Pro?

Sdílet
Vložit
  • čas přidán 11. 08. 2023
  • In this video, we're gonna learn the various best practices of Error Handling in Node.js, such as central error handling, graceful process exists and extending the JavaScript's Error object.
    ======⚡⚡⚡======
    Licenses are valid only until the 31st of August 2013, first come first serve! ❤️
    👉 Quokka License 1: wallabyjs.com/store/personal/...
    👉 Quokka License 2: wallabyjs.com/store/personal/...
    👉 Quokka License 3: wallabyjs.com/store/personal/...
    👉 Wallaby License 1: wallabyjs.com/store/personal/...
    👉 Wallaby License 2: wallabyjs.com/store/personal/...
    ======⚡⚡⚡======
    🙌 Become my Patreon and get exclusive perks: / softdevdiaries
    💼 Follow me on LinkedIn and drop me a message if you'd like: / gusgadirov
    💻 Also, let's connect on GitHub: github.com/gusgad
    📚 Resources:
    Original tutorial source: github.com/goldbergyoni/nodeb...
    Code: github.com/gusgad/youtube-tut...
    And don't forget to subscribe for more videos like this 😊
  • Věda a technologie

Komentáře • 33

  • @prasannabiswas681
    @prasannabiswas681 Před měsícem +2

    This are some next level through experience gained codes which you are passing to new developers........with great power comes great responsibility
    Hats off to you I just got placed in a company after a system design interview for Fullstack Developer role just by following this playlist.
    Couldn't thank you more sir.

  • @LarutanAK
    @LarutanAK Před 11 měsíci +8

    Not long ago I had to revamp the error handling system of over 20 projects with over 5 different approachs mixed within them.
    Working on an enterprise level for a multibillion dollar company that has this kind of anti-pattern and literally no code review can be a nightmare, but it is extremely educational.
    Took me not much more than a couple of weeks of work time, but I am glad to see that the final result is pretty much what you taught on this video.
    Most junior and mid-level developers dont pay a lot of attention to error handling. This video is absolute gold in terms of best practices.

    • @SoftwareDeveloperDiaries
      @SoftwareDeveloperDiaries  Před 11 měsíci

      Thanks for sharing your story, that's very insightful. Would you say the points mentioned in the video are sufficient when it comes to the code. Or were there any other patterns you used when refactoring? :)

    • @LarutanAK
      @LarutanAK Před 11 měsíci +2

      @@SoftwareDeveloperDiaries I really liked your approach, showing the do's and dont's (many of which I've seen during the process lol)
      I developed a library to centralize all error handling through a middleware, using a similar approach with an error dictionary and custom error types (easy to reuse on all projects).
      The biggest issue was how the errors were thrown: Promise.rejects, .catch(), just arbritrary throws and/or try-catches, or simply nothing at all... for that I went with hexagonal pattern, piping all errors towards the error-handler and its dictionary through a few adapters (simple and cleaner code)
      For the final result, any custom error can be simply added to the dictionary, along with a function that will handle the specifics for that error, or if the developer adds nothing custom, a default dictionary is used to create an error with all necessary logging and debbugging info.

    • @codingispower1816
      @codingispower1816 Před 6 měsíci

      Would be cool to see an example of this library.@@LarutanAK

  • @user-bb9cn6dg1u
    @user-bb9cn6dg1u Před 5 měsíci

    Damn, a good explanation no one is touching this depth of concepts like memory, handling error, and all stuff you are doing a great job!!

  • @Vriskh4oj
    @Vriskh4oj Před 7 měsíci +3

    Omg I am a self educated begginer developer, and 3 days ago, I did the same thing. I just felt the need to throw custom error. Im glad I fid the right thing

  • @renjithpn2002
    @renjithpn2002 Před 29 dny

    This is gold, thanks for sharing, expecting more like this! 🙂

  • @fisherhe5030
    @fisherhe5030 Před 6 měsíci

    Really helpful for me. Thanks, guy.

  • @vmmoorthi
    @vmmoorthi Před 4 měsíci

    You are delivering crucial things
    Thank you

  • @paperC_CSGO
    @paperC_CSGO Před měsícem

    Please do a video about performance tests in node! Testing locally + setting up tests for CI/CD

  • @enogratechnologies1896
    @enogratechnologies1896 Před 5 měsíci

    Thanks for this.

  • @dawid_dahl
    @dawid_dahl Před 11 měsíci

    Great video. Subscribed!

  • @rajanacharya6360
    @rajanacharya6360 Před 10 měsíci

    Great video. Subscribed!, I have been also following same approach. Would like to request you to consider making videos for topic like best practice, code quality, optimization, debugging, performant code etc.

  • @mroobert
    @mroobert Před 10 dny

    Why do you need the isOperational flag? In isTrustedError if the error is istanceof AppError than is a trusted error. Is there a specific case where we need this isOperational with false / true?

  • @ayushpatel2171
    @ayushpatel2171 Před 2 měsíci

    Do we have to create our own error dictionary or is there some sort of npm package for it?

  • @acousticmunda6400
    @acousticmunda6400 Před 11 měsíci +1

    OMG it is so helpful, I am feeling like a Pro now😅

  • @bafian
    @bafian Před 11 měsíci

    you think it's okey to hardcode in the client side the httpCode ? or was this just an example and that httpCode property should only be used for network request errors?

    • @SoftwareDeveloperDiaries
      @SoftwareDeveloperDiaries  Před 11 měsíci

      The latter! I hardcoded it just to demonstrate it as an example 😉

    • @bafian
      @bafian Před 11 měsíci

      @@SoftwareDeveloperDiaries haha oki dokis

  • @ayushpatel2171
    @ayushpatel2171 Před 2 měsíci

    I am unable to understand the importance of Object.setPrototypeOf(this, new.target.prototype). Can you please explain the significance of this line.

  • @scottamolinari
    @scottamolinari Před 10 měsíci

    It's pronounced walla"bee".