Zoffix Znet via RT wrote: >Fix: https://github.com/rakudo/rakudo/commit/db70a1fda8
This doesn't distinguish between an exception being thrown and the expression evaluating to an exception object. The former is an error condition that must be reported; the latter is a successful evaluation in the same category as evaluating to a string. Incorrect behaviour (failing to suppress output of a normal evaluation which produced its own output) can be seen thus: > say 123; try { my Int $a; $a = "foo" }; say 456; $! 123 456 Type check failed in assignment to $a; expected Int but got Str ("foo") in block <unit> at <unknown file> line 1 Your single $output variable is too narrow to make the distinctions that you need. -zefram