失敗時も処理する場合
> c "12.5.exs"
[MyCase]
> MyCase.open_file "12.5-1.exs"
defmodule MyCase do
:ok
> MyCase.open_file "12.5-1.exss"
Couldn't open 12.5.exss: enoent
:ok
失敗時に例外を発生させる場合
> c "12.5-2.exs"
[MyCase]
> MyCase.open_file()
** (RuntimeError) Failed to open config file: enoent
12.5-2.exs:7: MyCase.open_file/0
エラーを明示的に扱わない場合
- パターンマッチ失敗 => MatchError発生
> c "12.5-3.exs"
[MyCase]
> MyCase.open_file()
defmodule MyCase do
:ok
> MyCase.open_file_not_exist()
** (MatchError) no match of right hand side value: {:error, :enoent}
12.5-3.exs:8: MyCase.open_file_not_exist/0
open!
を使う場合
> c "12.5-4.exs"
[MyCase]
> MyCase.open_file()
defmodule MyCase do
:ok
> MyCase.open_file_not_exist()
** (File.Error) could not open "config_file": no such file or directory
(elixir) lib/file.ex:1317: File.open!/2
12.5-4.exs:8: MyCase.open_file_not_exist/0
末尾に !
が付いた関数
- エラー時に例外を発生する
- 詳しいメッセージが表示される