如何在 elixir 中将 erlang 错误消息翻译成用户友好的文本

How to translate erlang error messages into user friendly text in elixir

我最近在尝试读取 elixir 中的文件时遇到以下错误。

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

幸运的是我知道 "enoent" 是什么意思,并很快意识到这是因为我在文件名中有错别字。一旦我解决了这个问题,一切都按预期工作了。

然而,这让我想知道是否有办法将此错误消息更改为更多 "human friendly" 可能显示给最终用户的消息?

我在这个问题中使用的函数是 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 我们可以看到错误现在更加用户友好