Exception: Exception

Defined in:
lib/source/ruby.rb

Overview

Instances of Exception and its descendants are used to communicate between raise methods and rescue statements in begin/end blocks. Exception objects carry information about the exception – its type (the exception’s class name), an optional descriptive string, and optional traceback information. Applications may subclass Exception to add additional information.

Direct Known Subclasses

StandardError

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(msg) ⇒ Exception

call-seq:

Exception.new(message = nil) -> exception

Returns a new Exception object, with an optional message.



2896
2897
2898
# File 'lib/source/ruby.rb', line 2896

def initialize(msg)
  `if(msg!=null){this.__message__=msg.__value__;}`
end

Class Method Details

.exception(arg) ⇒ Object

call-seq:

Exception.exception(arg) -> exception

Equivalent to Exception::new.



2887
2888
2889
# File 'lib/source/ruby.rb', line 2887

def self.exception(arg)
  `this.m$new(arg)`
end

Instance Method Details

#backtraceObject

call-seq:

exc.backtrace -> array

Returns any backtrace associated with the exception. The backtrace is an array of strings, each containing “/path/to/filename:line”.



2906
2907
2908
2909
2910
# File 'lib/source/ruby.rb', line 2906

def backtrace
  `if(this.__stack__==null){return [];}`
  `for(var i=0,lines=this.__stack__.match(/@[^\\n]+:\\d+/g),l=lines.length,result=[];i<l;++i){result.push($q(lines[i].match(/@\\w+:\\/*(\\/[^\\n]+:\\d+)/)[1]));}`
  return `result`
end

#exception(arg) ⇒ Object

call-seq:

exc.exception(arg) -> exception or exc

If arg is absent or equal to exc, returns the receiver. Otherwise returns a new Exception object of the same class as the receiver, but with a message equal to arg.to_str.



2919
2920
2921
2922
# File 'lib/source/ruby.rb', line 2919

def exception(arg)
  `if(arg==null||arg==this){return this;}`
  `this.m$class().m$new(arg.m$to_str())`
end

#inspectObject

call-seq:

exc.inspect -> string

Returns exc’s class name and message.



2929
2930
2931
2932
# File 'lib/source/ruby.rb', line 2929

def inspect
  `var class_name=this.m$class().__name__.replace(/\\./g,'::')`
  `this.__message__==''?$q(class_name):$q('#<'+class_name+': '+(this.__message__||class_name)+'>')`
end

#messageObject

call-seq:

exc.to_message -> string
exc.to_s       -> string
exc.to_str     -> string

Returns exc’s message (or the name of the exception class if no message is set).



2942
2943
2944
# File 'lib/source/ruby.rb', line 2942

def message
  `this.__message__==null?$q(this.m$class().__name__.replace(/\\./g,'::')):$q(this.__message__)`
end

#set_backtrace(ary) ⇒ Object

call-seq:

exc.set_backtrace(array) -> array

Sets the backtrace information associated with exc. The argument must be an array of String objects in the format described in Exception#backtrace.



2952
2953
2954
2955
2956
# File 'lib/source/ruby.rb', line 2952

def set_backtrace(ary)
  `for(var i=0,l=ary.length,result='';i<l;++i){result=result+'@xx://'+ary[i].__value__+'\\n';}`
  `this.__stack__=result`
  return `ary`
end

#to_sObject

call-seq:

exc.to_message -> string
exc.to_s       -> string
exc.to_str     -> string

Returns exc’s message (or the name of the exception class if no message is set).



2966
2967
2968
# File 'lib/source/ruby.rb', line 2966

def to_s
  `this.__message__==null?$q(this.m$class().__name__.replace(/\\./g,'::')):$q(this.__message__)`
end

#to_strObject

call-seq:

exc.to_message -> string
exc.to_s       -> string
exc.to_str     -> string

Returns exc’s message (or the name of the exception class if no message is set).



2978
2979
2980
# File 'lib/source/ruby.rb', line 2978

def to_str
  `this.__message__==null?$q(this.m$class().__name__.replace(/\\./g,'::')):$q(this.__message__)`
end