According to the Erlang Abstract Format, a catch clause for try expressions expects three arguments: the kind (which is an error, exit or throw), the value (which is usually matched against) and a third undocumented argument which is a cons list.<div>

<br></div><div>Taking a quick look around shows that this cons cell contains the stacktrace and a number:</div><div><br></div><div><a href="https://github.com/nox/otp/blob/master/erts/emulator/beam/bif.c#L1325">https://github.com/nox/otp/blob/master/erts/emulator/beam/bif.c#L1325</a></div>

<div><br></div><div>Which I was able to verify in practice.</div><div>This seems to work fine except that erl_eval does not pass a cons cell as the third argument but only the stacktrace:</div><div><br></div><div><a href="https://github.com/erlang/otp/blob/maint/lib/stdlib/src/erl_eval.erl#L786">https://github.com/erlang/otp/blob/maint/lib/stdlib/src/erl_eval.erl#L786</a><br>

<div><br></div><div>In theory, since an Erlang developer cannot specify this third argument using Erlang syntax, this difference does not actually matter. But in practice part of the Erlang/OTP stack may actually rely on this third argument, so I have decided to report this as a bug.</div>

<div><br></div><div>In any case, I would be interested to know the purpose of this third argument.<br>Is it meant to be internal to the Erlang VM or should it be documented?</div><div><br></div><div>Thank you and happy new year!</div>

<div><div><br></div><div><div><div><br></div><div><span style="font-size:13px"><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><b>José Valim</b></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><div>

<span style="font-family:verdana,sans-serif;font-size:x-small"><a href="http://www.plataformatec.com.br/" style="color:rgb(42,93,176)" target="_blank">www.plataformatec.com.br</a></span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Skype: jv.ptec</span></div>

<div><span style="font-family:verdana,sans-serif;font-size:x-small">Founder and Lead Developer</span></div></span></div></span></div></div>
</div></div></div>