Hurl, the Exceptional language

Hurl is a language created for one purpose: to explore a language based around exception handling as the only control flow. It was sparked from conversations between Nicole Tietz-Sokolskaya and friends from Recurse Center whose identities will be withheld for their dignity.

This site contains documentation around how to use Hurl. It also provides some examples and guidance for debugging and answers questions.

Praise for Hurl

It comes highly endorsed:

I, uh, have changed my mind about ever implementing a language based on Hurl. This monstrosity is beautiful, and I must never touch it. I don't want my name associated with this in any way1.

-Erika Rowland

Unfortunately, I decided to make this language a reality. I'm sorry.

-Nicole Tietz-Sokolskaya

is "đŸ¤®" an available quote?

-Mary McGrath

Certified unhingedâ„¢!

-nate (@[email protected])

Exceptions as control flow have been a well-guarded secret within the professional programming community for years. It's about time someone codified these techniques into a coherent whole.

-Jonathan Watmough

To add more praise, email Nicole (please include positive consent to include said quote on this site).

Source code

The source code for Hurl and for this site are both available in Hurl's repo. Emailed patches are welcome if you find a bug or an error, but you'll need to sign over all rights to the patch: I need to preserve the ability to relicense this and license it commercially.


For this project, I considered joke licenses and unfortunate licenses. Ultimately, this software is licensed under the following three very serious licenses:

  • Under AGPL-3.0
  • Under GAL-1.0 (Gay Agenda License)
  • Under a commercial license

You may use the software under any one of these licenses, without regard for the others.


Erika did consent to posting this and provided it in its current form. If someone actually does not want their name associated, I would not include it.