Project

General

Profile

Actions

Feature #5856

closed

Feature: Raise any object

Added by kstephens (Kurt Stephens) over 10 years ago. Updated over 9 years ago.

Status:
Rejected
Priority:
Normal
Target version:
[ruby-core:41950]

Description

Feature: Raise any object

= Proposal

The ability to raise any object that conforms to the protocol of Exception.

= Problem

  • The Exception subclass hierarchy is well-established.
  • CRuby does not allow any object that behaves as an Exception to be raised, it must be a subclass of Exception.
  • 3rd-party code often rescues Exception; e.g. for error recovery, retry and/or logging.
  • Users need the ability to raise objects that would not normally be rescued by any code;
    e.g.: hard timeouts or custom signal handlers in an application.

= Solution

  • ruby/eval.c: Remove make_exception() assertion rb_obj_is_kind_of(mesg, rb_mRaiseable).

= Implementation

= Example

  • See test/ruby/test_raise_any.rb

= See also


Files

trunk-raise-any.diff (3.97 KB) trunk-raise-any.diff kstephens (Kurt Stephens), 01/07/2012 06:52 AM

Related issues 1 (0 open1 closed)

Related to Ruby master - Feature #5818: Feature: RaiseableRejected12/28/2011Actions
Actions

Also available in: Atom PDF