Yashotantra Academy logo
← TypeScript theorytheory 0/50 · 0%
level 1
Curious · 0 XP
streak
0d
perfect
0
badges
0

100 XP to Apprentice

Foundations · medium

37. Error handling patterns

Typed errors and Result-style alternatives to exceptions.

1 min read3 questionsup to 50 XPtopic 37/50

Read in another language

AI translates the explanation and quiz text while preserving code and answer scoring.

`catch` clauses type their parameter as `unknown` (under `useUnknownInCatchVariables`, the default in strict mode), since JavaScript allows throwing any value, not just `Error` instances.

ts
try {
  riskyCall();
} catch (err) {
  if (err instanceof Error) {
    console.log(err.message);
  } else {
    console.log("Unknown error", err);
  }
}

An alternative to exceptions is a `Result` type that makes success/failure explicit in the return type, forcing callers to handle both cases instead of possibly forgetting a `try/catch`.

ts
type Result<T> = { ok: true; value: T } | { ok: false; error: string };

function parseAmount(input: string): Result<number> {
  const n = Number(input);
  return Number.isNaN(n) ? { ok: false, error: "not a number" } : { ok: true, value: n };
}

How to study this topic

  1. 1. Read the explanation once end to end, skipping the code.
  2. 2. Re-read the code snippets and say out loud what each line does.
  3. 3. Answer the quiz without scrolling back — that is the real check.
  4. 4. Read every explanation, even for the answers you got right.

Scoring

  • · Up to 30 XP from quiz accuracy.
  • · +15 XP for a perfect first attempt.
  • · +5 XP while a 3-day streak is running.
  • · 75% or higher marks the topic complete.

Check your understanding

  1. 1. What type is a `catch` clause's parameter under strict mode by default?

  2. 2. Why check `err instanceof Error` before accessing `err.message`?

  3. 3. What advantage does a `Result<T>` return type have over throwing?

Badges

First light
Pass your first topic
Sharp shooter
3 perfect first-try quizzes
On a roll
Study 3 days in a row
Week warrior
Study 7 days in a row
Grinder
Earn 500 XP
Deep diver
Earn 1500 XP