Issue #5856 has been updated by Kurt  Stephens.

File trunk-raise-any.diff added

Attached patch.
----------------------------------------
Feature #5856: Feature: Raise any object
https://bugs.ruby-lang.org/issues/5856

Author: Kurt  Stephens
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 


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

* See attached patch or https://github.com/kstephens/ruby/tree/trunk-raise-any

= Example

* See test/ruby/test_raise_any.rb

= See also

* https://bugs.ruby-lang.org/issues/5818



-- 
http://redmine.ruby-lang.org