2017-05-07 12:04:49 +00:00
|
|
|
module ExceptionSpecs
|
|
|
|
class Exceptional < Exception; end
|
|
|
|
|
|
|
|
class Backtrace
|
|
|
|
def self.backtrace
|
|
|
|
begin
|
2018-04-28 19:50:06 +00:00
|
|
|
raise # If you move this line, update backtrace_spec.rb
|
2017-05-07 12:04:49 +00:00
|
|
|
rescue RuntimeError => e
|
|
|
|
e.backtrace
|
|
|
|
end
|
|
|
|
end
|
2018-04-28 19:50:06 +00:00
|
|
|
|
|
|
|
def self.backtrace_locations
|
|
|
|
begin
|
|
|
|
raise
|
|
|
|
rescue RuntimeError => e
|
|
|
|
e.backtrace_locations
|
|
|
|
end
|
|
|
|
end
|
2017-05-07 12:04:49 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
class UnExceptional < Exception
|
|
|
|
def backtrace
|
|
|
|
nil
|
|
|
|
end
|
|
|
|
def message
|
|
|
|
nil
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
class ConstructorException < Exception
|
|
|
|
|
|
|
|
def initialize
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
class OverrideToS < RuntimeError
|
|
|
|
def to_s
|
|
|
|
"this is from #to_s"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
class EmptyToS < RuntimeError
|
|
|
|
def to_s
|
|
|
|
""
|
|
|
|
end
|
|
|
|
end
|
2018-06-13 21:58:54 +00:00
|
|
|
|
|
|
|
class InitializeException < StandardError
|
|
|
|
attr_reader :ivar
|
|
|
|
|
|
|
|
def initialize(message = nil)
|
|
|
|
super
|
|
|
|
@ivar = 1
|
|
|
|
end
|
|
|
|
|
|
|
|
def initialize_copy(other)
|
|
|
|
super
|
|
|
|
ScratchPad.record object_id
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
module ExceptionModule
|
|
|
|
def repr
|
|
|
|
1
|
|
|
|
end
|
|
|
|
end
|
2017-05-07 12:04:49 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
module NoMethodErrorSpecs
|
|
|
|
class NoMethodErrorA; end
|
|
|
|
|
|
|
|
class NoMethodErrorB; end
|
|
|
|
|
|
|
|
class NoMethodErrorC;
|
|
|
|
protected
|
|
|
|
def a_protected_method;end
|
|
|
|
private
|
|
|
|
def a_private_method; end
|
|
|
|
end
|
|
|
|
|
|
|
|
class NoMethodErrorD; end
|
2018-01-29 16:08:16 +00:00
|
|
|
|
|
|
|
class InstanceException < Exception
|
|
|
|
end
|
2017-05-07 12:04:49 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
class NameErrorSpecs
|
|
|
|
class ReceiverClass
|
|
|
|
def call_undefined_class_variable
|
|
|
|
@@doesnt_exist
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|