[MacRuby-devel] [MacRuby] #627: Obj-C exception raised within a rescue block are not catched
MacRuby
ruby-noreply at macosforge.org
Mon Mar 1 13:52:10 PST 2010
#627: Obj-C exception raised within a rescue block are not catched
----------------------------------------+-----------------------------------
Reporter: martinlagardette@… | Owner: lsansonetti@…
Type: defect | Status: new
Priority: major | Milestone:
Component: MacRuby | Keywords: rescue exception
----------------------------------------+-----------------------------------
This file:
{{{
#!ruby
# test.rb
begin
begin
raise
rescue
NSString.stringWithCString(nil)
end
rescue
puts "rescued"
end
}}}
Will produce the following:
{{{
#!sh
$> macruby /tmp/test.rb
uncaught Objective-C/C++ exception...
2010-03-01 22:45:58.926 macruby[30392:903] *** Terminating app due to
uncaught exception 'NSInvalidArgumentException', reason: '*** +[NSString
stringWithCString:]: NULL cString'
*** Call stack at first throw:
(
0 CoreFoundation 0x00007fff84f80444
__exceptionPreprocess + 180
1 libobjc.A.dylib 0x00007fff84db80f3
objc_exception_throw + 45
2 CoreFoundation 0x00007fff84f80267
+[NSException raise:format:arguments:] + 103
3 CoreFoundation 0x00007fff84f801f4
+[NSException raise:format:] + 148
4 Foundation 0x00007fff87f704ed
+[NSString stringWithCString:] + 80
5 ??? 0x0000000101040385 0x0 +
4312007557
6 libmacruby.dylib 0x0000000100174130
rb_vm_dispatch + 2688
7 ??? 0x000000010104015d 0x0 +
4312007005
8 libmacruby.dylib 0x0000000100184ebf
rb_vm_run + 351
9 libmacruby.dylib 0x0000000100046459
ruby_run_node + 73
10 macruby 0x0000000100000d28 main +
152
11 macruby 0x0000000100000c88 start +
52
12 ??? 0x0000000000000002 0x0 + 2
)
terminate called after throwing an instance of 'NSException'
Abort trap
}}}
However, using pure Ruby exceptions works without issue:
{{{
#!ruby
# test2.rb
begin
begin
raise
rescue
raise
end
rescue
puts "rescued"
end
}}}
{{{
#!sh
$> macruby /tmp/test2.rb
rescued
}}}
--
Ticket URL: <http://www.macruby.org/trac/ticket/627>
MacRuby <http://macruby.org/>
More information about the MacRuby-devel
mailing list