J

JavaScript Error Handling

Master try/catch, error types, custom errors, and debugging strategies with interactive code exercises.

Programming v1.0.0 20 uses
Step 1 of 6

Step 1: What are Errors?

When JavaScript encounters a problem it cannot recover from, it creates an Error object and throws it. Errors halt execution unless they are caught.

There are two broad categories:

  • Syntax Errors — detected at parse time before any code runs (e.g., missing brackets)
  • Runtime Errors — occur while the program is executing (e.g., calling an undefined function)

JavaScript has several built-in error types:

TypeError

Occurs when a value is not the expected type.

null.toString();       // TypeError: Cannot read properties of null
(42).toUpperCase();    // TypeError: not a function

ReferenceError

Occurs when referencing a variable that doesn't exist.

console.log(myVar);   // ReferenceError: myVar is not defined
undeclaredFn();        // ReferenceError: undeclaredFn is not defined

SyntaxError

Occurs when code has invalid syntax (caught at parse time, or via eval/JSON.parse).

JSON.parse("{bad}");   // SyntaxError: Unexpected token b
eval("if(");           // SyntaxError: Unexpected end of input

RangeError

Occurs when a value is outside its allowed range.

new Array(-1);         // RangeError: Invalid array length
(1.5).toFixed(200);    // RangeError: toFixed() digits argument

URIError

Occurs when URI encoding/decoding functions receive invalid input.

decodeURIComponent('%');  // URIError: URI malformed

Key Terms

throw Manually trigger an error: throw new Error("message") catch Intercept a thrown error and handle it gracefully stack trace The chain of function calls that led to the error error.message Human-readable description of what went wrong error.name The type of error (e.g., "TypeError", "RangeError")

About This Lab

Robust error handling separates production-quality code from fragile scripts. In this lab, you'll learn about JavaScript's built-in error types, use try/catch/finally blocks, create custom error classes, handle async errors, and practice defensive programming — all with live code editors that let you trigger and catch errors in real time.

How It Works

  1. 1 Read each step's explanation of error handling concepts
  2. 2 Run code that throws errors and catch them
  3. 3 Experiment with different error types
  4. 4 Build custom error handlers
  5. 5 Complete the quiz to test your understanding

Translate

ESC