Unexpected monad. Is safe error handling possible in JavaScript/TypeScript?

Error handling is an extremely hard part of every JavaScript project that can produce a lot of bugs. Usually, developers use just the try/catch as a standard approach for the error handling, which is not so ideal solution because this statement catches anything which was thrown by the “throw” statement, as results developer:

  • need extra conditions for handling restricted classes of exceptions;
  • should rethrow errors or it can be eaten up;
  • can’t separate errors and exceptions;

In this talk, you’ll learn how to implement safe error handling (without mentioned problems) in a project and with perks like typed errors inside handlers, errors documentation of functions/methods without JSDoc and comments, and the ability to log your errors without a break of the error handling flow.

Artem Kobzar and Dmitry Makhnev

Artem is working for JetBrains on the compiler from Kotlin to WebAssembly. Also, he's helping with the SourceMap Specification as an invited expert in TC39. At night (if he's not fixing production), he likes lifting heavy weights in the gym or/and drinking good Chinese tea.

Dmitry is a software developer at WebStorm. Before almost 14 years he was a frontend developer. Ex-member of HolyJS conference selection committee, co-organizer of JetBrains JavaScript Day. He loves his son, Chinese tea, South Holland, bicycle rides, great technical talks and art (Impressionism++).