如何在 erlang 中格式化 throw 语句

how to format a throw statement in erlang

我是 Erlang 语法的新手,正在为此苦苦挣扎

我可以做到这一点并编译

  throw(Reason)

类型为throw/1

我希望能够做到这一点:

%% I have seen this code in sample examples.
?THROW("Couldn't start process: ~p. ~n", [Reason])

我觉得没有throw/2.

那我怎么定义一个像上面那样的呢?

?THROW 是一个宏。它应该在某处定义为:

-define(THROW(Format,Params),throw(io_lib:format(Format,Params))).

在此定义中,调用 io_lib:format(Format,Params) returns 函数抛出用作 Reason 的单个字符串。