Stack traces: Difference between revisions

(Added F# version)
Line 597:
[line: 21, column: 1]</pre>
 
=={{header|Erlang}}==
{{trans|Java}}
Stack traces only can be obtained inside a catch block. Additionally, it doesn't work for tail calls.
<lang erlang>-module(stack_traces).
 
-export([main/0]).
 
main() ->
{ok,A} = outer(),
io:format("~p\n", [A]).
 
outer() ->
{ok,A} = middle(),
{ok,A}.
 
middle() ->
{ok,A} = inner(),
{ok,A}.
 
inner() ->
try throw(42) catch 42 -> {ok,erlang:get_stacktrace()} end.</lang>
Output:<pre>[{stack_traces,inner,0,[{file,"stack_traces.erl"},{line,18}]},
{stack_traces,middle,0,[{file,"stack_traces.erl"},{line,14}]},
{stack_traces,outer,0,[{file,"stack_traces.erl"},{line,10}]},
{stack_traces,main,0,[{file,"stack_traces.erl"},{line,6}]},
{init,start_it,1,[]},
{init,start_em,1,[]}]</pre>
 
=={{header|F_Sharp|F#}}==
Anonymous user