DEV Community

Cover image for JavaScript error handling with better `dx`

JavaScript error handling with better `dx`

Jason Tu on November 07, 2018

JavaScript expects you to handle errors with try...catch, but the syntax is somewhat inconvenient: 1. You have to declare result variables separ...
Collapse
 
joelnet profile image
JavaScript Joel

This is kind of like a poor man's Either!

Collapse
 
puritanic profile image
Darkø Tasevski

What is this abomination:

;(async () => {

😱

Collapse
 
joelnet profile image
JavaScript Joel

You cannot use async/await in the global scope. By wrapping your code in an async function, this trick will let you use await.

Collapse
 
puritanic profile image
Darkø Tasevski

Are you sure about that? I know that you can't use await without async but if I remember correctly I've used async function in top-level scope a few times 🤔

Anyway, I was thinking about that semicolon at the beginning which purpose is to guard against AST, confusing and ugly syntax IMO.

Thread Thread
 
joelnet profile image
JavaScript Joel

Are you sure about that?

You can test by pasting an await command into the browser console.

Anyway, I was thinking about that semicolon at the beginning

Ahh ya. It's just a guard.

Collapse
 
joelnet profile image
JavaScript Joel

Where does the dx name come from? What does it mean?

Collapse
 
nucleartide profile image
Jason Tu

It could mean a lot of things? Developer Experience, De-Exception, Derivative, Ducks, etc.

I like the first 2 definitions best. Besides that, it's just short and convenient to type.

Collapse
 
nucleartide profile image
Jason Tu

You could always copy the module into your project! npm is just there as a convenience.

Collapse
 
yorodm profile image
Yoandy Rodriguez Martinez

You Javascript people need Monads, or some decent metaprogramming, or macros, whatever make you stop creating libraries from every single useful snippet of code out there

Collapse
 
mojtabamarashee profile image
seyed mojtaba marashi

good idea