我使用System.cmd
命令处理文件。但是,如果在系统上找不到文件,则会引发ArgumentError,特别是Erlang error: :enoent
。
如何使用案例功能处理此错误?到目前为止,这是我的代码:
case System.cmd(generate_executable(settings), ["start"]) do
{output, 0} ->
IO.inspect("Start successful")
{output, error_code} ->
IO.inspect("Start failed")
end
答案 0 :(得分:6)
您必须使用try
/ rescue
。
try do
case System.cmd(generate_executable(settings), ["start"]) do
{output, 0} ->
IO.inspect("Start successful")
{output, error_code} ->
IO.inspect("Start failed")
end
rescue
error ->
IO.inspect(error)
end
当可执行文件不存在时,您应该会看到%ErlangError{original: :enoent}
中IO.inspect
打印的rescue
。