Custom errors in JavaScript
New Course Coming Soon:
Get Really Good at Git
JavaScript gives us a set of 8 error objects, which are raised in a try/catch expression depending on the error type. They are:
Error
EvalError
RangeError
ReferenceError
SyntaxError
TypeError
URIError
I analyzed them all in the JavaScript errors tutorial.
Here I want to explain how to create your own custom errors by extending the base Error class:
class OutOfFuelError extends Error {}
class FlatTireError extends Error {}
Custom errors allow you to behave differently based on the specific error type, without resorting to use error messages to understand the kind of error.
try {
//some code
} catch (err) {
if (err instanceof OutOfFuelError) {
//handle error
} else if (err instanceof FlatTireError) {
//handle error
}
}
Before you can do so, of course the error must be explicitly thrown in your code:
try {
const car = new Car() //imagine we have a Car object
if (!car.fuel) {
throw new OutOfFuelError('No fuel!')
}
if (car.flatTire) {
throw new FlatTireError('Flat tire!')
}
} catch (err) {
if (err instanceof OutOfFuelError) {
//handle error
} else if (err instanceof FlatTireError) {
//handle error
}
}
During the error creation you can also customize anything related to the class, even customizing the parameters received by the constructor if you need:
class OutOfFuelError extends Error {
constructor(message) {
super(message)
this.name = "OutOfFuelError"
}
}
Are you intimidated by Git? Can’t figure out merge vs
rebase? Are you afraid of screwing up something any time
you have to do something in Git? Do you rely on ChatGPT
or random people’s answer on StackOverflow to fix your
problems? Your coworkers are tired of explaining Git to
you all the time? Git is something we all need to use,
but few of us really master it. I created this course to
improve your Git (and GitHub) knowledge at a radical
level. A course that helps you feel less frustrated with
Git. Launching Summer 2024. Join the waiting list!
→ Get my
JavaScript Beginner's Handbook
→ Read my
JavaScript Tutorials
on The Valley of Code
→ Read my
TypeScript Tutorial
on The Valley of Code
Here is how can I help you:
- COURSES where I teach everything I know
- THE VALLEY OF CODE your web development manual
- BOOTCAMP 2024 cohort in progress, next edition in 2025
- BOOKS 16 coding ebooks you can download for free on JS Python C PHP and lots more
- SOLO LAB everything I know about running a lifestyle business as a solopreneur
- Interesting links collection
- Follow me on X