Unexpected Monad. Is Safe Error Handling Possible in JS/TS? by Artem Kobzar and Dmitry Makhnev

preview_player
Показать описание
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 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++).
Рекомендации по теме
Комментарии
Автор

Awesome talk, thank you! I really like how you explained all the concepts in a fun and approachable way!

filipbystricky
Автор

I liked the content, but the jokes and the scripted dialogs are hard to watch. If you're ever repeating this talk, please consider making it straightforward, without the scripted dialog.

emterroso
Автор

That's just a jetbrains promo, pass

bananasba
Автор

Promise.AllSettled already provides this in the shape of {status: "fulfilled", value } or {status: "rejected", reason}

m_raez