liveBook · Manning

Catch clause

As explained in Elixir in Action, Third Edition

A catch clause is a clause of a try expression that pattern-matches and handles an error, exit, or throw.

A catch clause handles a runtime error, exit, or throw from a try expression. Execution moves from the do block to a matching catch branch, whose patterns receive the event type and value. section 8.1.2

Match the runtime event deliberately:

  • Match :error for raised errors, :throw for thrown values, or :exit for exits. section 8.1.2
  • Treat the try expression's value as the last expression in either the do block or the selected catch branch. section 8.1.2

How Elixir in Action, Third Edition covers it

How deep it goes
Explains syntax, event types, pattern matching, return values, and cleanup, but stops short of broader fault-tolerance architecture.
Examples
Uses a helper lambda, raised errors, thrown values, exits, tuple-pattern catches, and cleanup output.
What it assumes
Assumes familiarity with Elixir expressions and runtime events while teaching catch patterns from the try mechanism.
What you can do after
Apply it via Elixir try expressions to classify, selectively handle, and return values from runtime events.
How it connects
Connects try expressions with pattern matching, raise, throw, exit, and after clauses.

Also explained in

Compare how 2 books explain catch clause →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Elixir in Action, Third Edition. The section links point to the parts of the book it draws on.