Skip to main content
JavaScript & the browser·Module C7 · Lesson 2
TaskThrow a new TypeError('expected number') inside a function and catch it. Log err.name, err.message. Also log err.stack.length > 0 to confirm a stack is present (true/false).

The Error object — name, message, stack

75 XP6 min
Theory

What's inside an Error

Every Error has three useful fields:

  • err.name — the class name ("Error", "TypeError", "RangeError", custom).
  • err.message — the first arg you passed to new.
  • err.stack — a multi-line string with the call stack at throw time.
const err = new TypeError("expected number");
err.name;     // "TypeError"
err.message;  // "expected number"
err.stack;    // "TypeError: expected number\n    at <anonymous>:1:13..."

Built-in error subclasses

JavaScript ships several subclasses you should reach for instead of bare Error:

  • TypeError — wrong type (e.g. called (undefined).foo).
  • RangeError — number/string outside valid range.
  • SyntaxError — thrown by JSON.parse on bad input.
  • URIErrordecodeURIComponent on bad input.

Using the right subclass lets call sites narrow with instanceof (see C7-05).

🔒

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial — card required, cancel anytime.

Sign up — free trial →

First 10 lessons in each track are free. No card needed for those.

PreviousNext lesson →

Get one Python or web tip a day — by email

Short, hand-written, no spam. Unsubscribe in one click.