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.



2865
2866
2867
# File 'lib/source/ruby.rb', line 2865

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.



2856
2857
2858
# File 'lib/source/ruby.rb', line 2856

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”.



2875
2876
2877
2878
2879
# File 'lib/source/ruby.rb', line 2875

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.



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

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

#inspectObject

call-seq:

exc.inspect -> string

Returns exc’s class name and message.



2898
2899
2900
2901
# File 'lib/source/ruby.rb', line 2898

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).



2911
2912
2913
# File 'lib/source/ruby.rb', line 2911

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.



2921
2922
2923
2924
2925
# File 'lib/source/ruby.rb', line 2921

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).



2935
2936
2937
# File 'lib/source/ruby.rb', line 2935

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).



2947
2948
2949
# File 'lib/source/ruby.rb', line 2947

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