Throw an exception but "hide" the top frame?

Adam D. Ruppe via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Dec 24 06:11:36 PST 2014


On Wednesday, 24 December 2014 at 13:39:00 UTC, aldanor wrote:
> (especially when many such functions have been wrapped). Is it 
> somehow possible to throw an exception "from the parent frame" 
> so the backtrace would never drop into the template body?


Since this is just passed as arguments to the constructor, you 
can ask for the same argument in your function and forward them.

>     auto check(alias func)(int x) {

Like make that

auto check(alias func)(int x, string file = __FILE__, size_t line 
= __LINE__) {
     /* snip */
        throw new Exception("%d < 0".format(result), file, line); 
// L10


The default values are auto-filled by the compiler to be the call 
site, then you pass it on to Exception so when it prints, it 
shows that,


More information about the Digitalmars-d-learn mailing list