J
Joel VanderWerf
There seem to be two problems with set_trace_func (or things I don't
understand):
1. The following program does not print "done". It does not raise an
exception. It *does* set the program's return code to false.
set_trace_func proc { || }
puts "done"
It's not a correct program, but I expected an ArgumentError, rather than
a silent exit.
2. The following program does not print the exception or "done". It does
not raise an exception to the top level. It *does* set the program's
return code to false.
set_trace_func proc { |event, file, line, id, binding, classname|
raise "foobar"
}
begin
x = 1
rescue => ex
p ex
end
puts "done"
Is it impossible to safely raise an exception inside of a trace func?
This is in ruby 1.8.4 and 1.8.6.
understand):
1. The following program does not print "done". It does not raise an
exception. It *does* set the program's return code to false.
set_trace_func proc { || }
puts "done"
It's not a correct program, but I expected an ArgumentError, rather than
a silent exit.
2. The following program does not print the exception or "done". It does
not raise an exception to the top level. It *does* set the program's
return code to false.
set_trace_func proc { |event, file, line, id, binding, classname|
raise "foobar"
}
begin
x = 1
rescue => ex
p ex
end
puts "done"
Is it impossible to safely raise an exception inside of a trace func?
This is in ruby 1.8.4 and 1.8.6.