%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /proc/self/root/opt/cpanel/ea-ruby24/root/usr/share/ri/system/syntax/
Upload File :
Create Path :
Current File : //proc/self/root/opt/cpanel/ea-ruby24/root/usr/share/ri/system/syntax/page-exceptions_rdoc.ri

U:RDoc::TopLevel[	iI"syntax/exceptions.rdoc:EFcRDoc::Parser::Simpleo:RDoc::Markup::Document:@parts['S:RDoc::Markup::Heading:
leveli:	textI"Exception Handling;To:RDoc::Markup::BlankLineo:RDoc::Markup::Paragraph;[I"5Exceptions are rescued in a +begin+/+end+ block:;T@
o:RDoc::Markup::Verbatim;[
I"begin
;TI"  # code that might raise
;TI"rescue
;TI"  # handle exception
;TI"	end
;T:@format0o;
;[I"TIf you are inside a method, you do not need to use +begin+ or +end+ unless you ;TI"3wish to limit the scope of rescued exceptions:;T@
o;;[
I"def my_method
;TI"
  # ...
;TI"rescue
;TI"
  # ...
;TI"	end
;T;0o;
;[I"0The same is true for a +class+ or +module+.;T@
o;
;[I"FYou can assign the exception to a local variable by using <tt>=> ;TI"8variable_name</tt> at the end of the +rescue+ line:;T@
o;;[I"begin
;TI"
  # ...
;TI"rescue => exception
;TI"  warn exception.message
;TI".  raise # re-raise the current exception
;TI"	end
;T;0o;
;[I"QBy default, StandardError and its subclasses are rescued.  You can rescue a ;TI"Tspecific set of exception classes (and their subclasses) by listing them after ;TI"+rescue+:;T@
o;;[
I"begin
;TI"
  # ...
;TI"%rescue ArgumentError, NameError
;TI"+  # handle ArgumentError or NameError
;TI"	end
;T;0o;
;[I"DYou may rescue different types of exceptions in different ways:;T@
o;;[I"begin
;TI"
  # ...
;TI"rescue ArgumentError
;TI"  # handle ArgumentError
;TI"rescue NameError
;TI"  # handle NameError
;TI"rescue
;TI""  # handle any StandardError
;TI"	end
;T;0o;
;[I"UThe exception is matched to the rescue section starting at the top, and matches ;TI"Tonly once.  If an ArgumentError is raised in the begin section, it will not be ;TI"*handled in the StandardError section.;T@
o;
;[I"&You may retry rescued exceptions:;T@
o;;[I"begin
;TI"
  # ...
;TI"rescue
;TI"D  # do something that may change the result of the begin block
;TI"
  retry
;TI"	end
;T;0o;
;[I"QExecution will resume at the start of the begin block, so be careful not to ;TI"create an infinite loop.;T@
o;
;[	I"RInside a rescue block is the only valid location for +retry+, all other uses ;TI"Swill raise a SyntaxError.  If you wish to retry a block iteration use +redo+. ;TI"MSee {Control Expressions}[rdoc-ref:syntax/control_expressions.rdoc] for ;TI"
details.;T@
o;
;[I"RTo always run some code whether an exception was raised or not, use +ensure+:;T@
o;;[I"begin
;TI"
  # ...
;TI"rescue
;TI"
  # ...
;TI"ensure
;TI"  # this always runs
;TI"	end
;T;0o;
;[I"@You may also run some code when an exception is not raised:;T@
o;;[I"begin
;TI"
  # ...
;TI"rescue
;TI"
  # ...
;TI"
else
;TI"5  # this runs only when no exception was raised
;TI"ensure
;TI"
  # ...
;TI"end;T;0:
@file@:0@omit_headings_from_table_of_contents_below0

Zerion Mini Shell 1.0