如何在elixir中将erlang错误消息转换为用户友好的文本

时间:2019-02-27 14:44:11

标签: erlang elixir

当我尝试在elixir中读取文件时,最近出现以下错误。

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

幸运的是,我知道“ enoent”的含义,并很快意识到这是因为我在文件名中输入了错字。一旦修复此问题,一切都会按预期进行。

但是,这使我想知道是否有一种方法可以将错误消息更改为可能会显示给最终用户的更“人性化”的消息?

1 个答案:

答案 0 :(得分:5)

我在此问题中追求的功能是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,我们可以看到该错误现在对用户更加友好