Errors are part of our daily lives as Ruby developers. We first encounter them in our development environments where they materialize from a misplaced comma, an eagerly-typed bracket, or a misunderstood method call. We fix them and move on, dismissing them as creatures of our own creation.

Sometimes the cause is deeper--not readily apparent. We learn to debug. We learn to rescue. We set traps for our insubordinate creature creations. We write tests to make sure our code is creature-free.

When we’re satisfied that we’ve tamed our code, we rejoice. “Ship it!”, we declare triumphantly. Emoji abound as our servers herald the deploy.

Of course, we haven’t tamed our code. The exceptions we encountered in development were not our creations--they were the cavalry scouts. In the depths of our code, on the outer edges of our test cases, the creatures lurk. They will follow paths that we never knew existed. They’ll cause mischeif and mayhem at every turn.

Their tactics will confound reason, but we will prevail. Through knowledge we’ll illuminate their hideouts. Through reason we’ll thwart their sabatoge. We’ll become experts in our craft.

It will take exceptional developers to defeat Ruby’s Exceptional Creatures!

What is this place?

Let’s face it: exceptions aren’t exciting. In fact, most of us would rather not think about them at all. They’re also a realtity of life, and understanding them can greatly improve the quality and user experience of our software.

Exceptional Creatures is our documentation of Ruby’s exception system for our customers. To lend our unruly friends some personality, we’ve created a fantasy world where exceptions are mischevious monsters that plot to cause mayhem in our applications.

We’re having so much fun building this documentation for our customers that we wanted to share it with everyone. We hope you enjoy it. Join us in our quest to discover all of Ruby’s Exceptional Creatures!

How the site is organized

The Guides explain Ruby’s exception system from start to finish. Start here to become an expert in exception handling and debugging.

The Bestiary is our catalog of Ruby exceptions. Each entry is a profile of a particular type of exception. We’ve pulled in some documentation and resources from around the web, and are in the process of writing our own documentation for each error.