Как перевести сообщения об ошибках erlang в удобный текст в эликсире - PullRequest
0 голосов
/ 27 февраля 2019

Недавно я получил следующую ошибку, когда пытался прочитать файл в эликсире.

iex()> File.read("no_existant_file.csv")
{:error, :enoent}

К счастью, я знал, что означает «enoent», и быстро понял, что это потому, что в имени файла была опечатка.Как только я это исправил, все заработало, как и ожидалось.

Однако, это заставило меня задуматься, есть ли способ изменить это сообщение об ошибке на более "дружественное к человеку" сообщение, которое потенциально может быть отображено конечному пользователю?

1 Ответ

0 голосов
/ 27 февраля 2019

Функция, которой я занимался в этом вопросе, - это функция erlang :file.format_error.

Используя приведенный выше пример

iex()> {:error, error_msg} = File.read("no_existant_file.csv")
{:error, :enoent}

iex()> error_msg
:enoent

iex()> :file.format_error(error_msg)
'no such file or directory'

Используя :file.format_error/1, мы видим, что ошибка теперьнамного более удобный

...