Exceptions/Catch an exception thrown in a nested call: Difference between revisions

Content added Content deleted
m ({{Task|Control Structures}})
(jq)
Line 1,421: Line 1,421:
<pre>caught exception U0
<pre>caught exception U0
uncaught exception: U1</pre>
uncaught exception: U1</pre>
=={{header|jq}}==
{{works with|jq|>1.4}}
<lang jq># n is assumed to be the number of times baz has been previously called:
def baz(n):
if n==0 then error("U0")
elif n==1 then error("U1")
else "Goodbye"
end;

def bar(n): baz(n);

def foo:
(try bar(0) catch if . == "U0" then "We caught U0" else error(.) end),
(try bar(1) catch if . == "U0" then "We caught U0" else error(.) end);

foo</lang>
{{out}}
$ jq -n -f Catch_an_exception_thrown_in_a_nested_call.jq
"We caught U0"
jq: error: U1


=={{header|Lasso}}==
=={{header|Lasso}}==