## Goal

The goal of this exercise is to teach the student the Concept of Exceptions in Ruby.

## Learning objectives

- Know what exceptions are.
- Know when an exception should be raised.
- Know how to raised an exception.
- Know how to rescue an when to re-raise an exception.
- Know the most important built-in exceptions (`Error`, `StandardError`, `ArgumentError`).
- Know how to create custom exceptions.

## Out of scope

- Memory and performance characteristics.

## Concepts

- `exceptions`: know what exceptions are; know when an exception should be raised; know how to raised an exception; know how to rescue an when to re-raise an exception; know the most important built-in exceptions (`Error`, `StandardError`, `ArgumentError`); know how to create custom exceptions

## Prequisites

- `basics`: know how to do string interpolation and how to work with `int`s
- `inheritance`: know about class hierarchies
- `nullability`: know what `nil` is

## Resources to refer to

### Hints

TODO: Find nice online documentation to link here

### After

TODO: Find nice online documentation to link here

## Goal

The goal of this exercise is to teach the student the Concept of Exceptions in Ruby.

## Learning objectives

- Know what exceptions are.
- Know when an exception should be raised.
- Know how to raised an exception.
- Know how to rescue an when to re-raise an exception.
- Know the most important built-in exceptions (`Error`, `StandardError`, `ArgumentError`).
- Know how to create custom exceptions.

## Out of scope

- Memory and performance characteristics.

## Concepts

- `exceptions`: know what exceptions are; know when an exception should be raised; know how to raised an exception; know how to rescue an when to re-raise an exception; know the most important built-in exceptions (`Error`, `StandardError`, `ArgumentError`); know how to create custom exceptions

## Prequisites

- `basics`: know how to do string interpolation and how to work with `int`s
- `inheritance`: know about class hierarchies
- `nullability`: know what `nil` is

## Resources to refer to

### Hints

- [Exceptions in Ruby][exceptions]: The Pragmatic Programmer's Guide. Exceptions chapter.

### After

- [Exceptions in Ruby][exceptions]: The Pragmatic Programmer's Guide. Exceptions chapter.

[exceptions]: https://ruby-doc.com/docs/ProgrammingRuby/html/tut_exceptions.html

Add links to the pragmatic programer exceptions chapter
Add links to the pragmatic programer exceptions chapter
