Elixirの例外は、起こることのないはずのことが対象 例:
- データベースが落ちた
- ネームサーバーからレスポンスがない
- 決まった名前のファイルが開けない
対象外:
- ユーザーが指定した名前のファイルが開けない 名前をタイプミスする場合がある
Elixirの設計思想 エラーは外部の監視プロセスに伝播させるべき => 例外のcatchはめったに使うべきではない
cf. OTPスーパーバイザ
> raise "Giving up"
** (RuntimeError) Giving up
> raise RuntimeError
** (RuntimeError) runtime error
> raise RuntimeError, message: "override message"
** (RuntimeError) override message