1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
# TODO: X.new nil doesn't work for Ruby exceptions
[
Exception,
Errno::EDOM,
Errno::EINVAL,
Errno::ENOENT,
Errno::ENOTDIR,
Errno::EACCES,
Errno::EEXIST,
NoMemoryError,
ScriptError,
LoadError,
NotImplementedError,
SyntaxError,
# not supported: SignalException,
# not supported: Interrupt,
StandardError,
ArgumentError,
IOError,
EOFError,
IndexError,
LocalJumpError,
NameError,
NoMethodError,
RangeError,
FloatDomainError,
RegexpError,
RuntimeError,
SecurityError,
SystemCallError,
ThreadError,
TypeError,
ZeroDivisionError,
SystemExit,
SystemStackError,
].each { |c|
puts c.name
begin
x = c.new
rescue
puts "None: Init Error: #{$!}"
else
puts "None: #{x.message}"
end
begin
x = c.new nil
rescue
puts "Nil: Init Error: #{$!}"
else
puts "Nil: #{x.message}"
end
begin
x = c.new "foo"
rescue
puts "One: Init Error: #{$!}"
else
puts "One: #{x.message}"
end
puts
}
|