[Rcpp-devel] C++ Throwing Exception.

Andrew Redd amredd at gmail.com
Wed Dec 22 18:40:37 CET 2010


To chime in about Romain's comment about recognizing more types.  I would
love a more robust exception handling.  I think I already mentioned that but
sometimes throwing a std::exception can be very expensive.  something a
little bit more robust would be very helpful.   For example, with the
discussion that we had a while back about catching the interrupt signal, I
had to use an exception that did not inherit std::exception since it took
sometimes  over a minute to catch the interrupt.

-Andrew

On Wed, Dec 22, 2010 at 5:25 AM, Dirk Eddelbuettel <edd at debian.org> wrote:

>
> On 22 December 2010 at 11:56, Cedric Ginestet wrote:
> [...]
> |     throw("Matrix Index is lower than 0.");
> [...]
> |     How can I modify my code in order to get the reason for the exception
> |     printed within R.
>
> By passing a exception class that inherits from std::exception, see a C++
> reference and / or the examples:
>
> edd at max:~/svn/rcpp/pkg/Rcpp/inst/examples$ grep throw
> RcppInline/UncaughtExceptions.r
>        'throw std::range_error("boom"); return R_NilValue ; ',
>
> Basically, don't just pass a string, pass a string _used as a ctor_ to the
> exception you want to throw, e.g.
>
>     throw( std::runtime_error("Matrix Index is lower than 0.") );
>
> Hth, Dirk
>
> --
> Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20101222/36933cec/attachment.htm>


More information about the Rcpp-devel mailing list