On 05/23/2018 12:47 AM, Robert M. Münch wrote:
On 2018-05-22 18:34:34 +0000, Ali ‡ehreli said:

An idiom known in C++ circles is a Lippincott function:

https://cppsecrets.blogspot.ca/2013/12/using-lippincott-function-for.html

Just wanted to mention that it can be a part of a clean solution.

Thanks, and I assume that D has the same property WRT exception re-throwing as C++, right?


I think you have to catch and rethrow explicitly:

import std.stdio;

void main() {
    try {
        try {
            throw new Exception("Yo");
        } catch (Exception e) {
            writeln("Rethrowing");
            throw e;
        }
    } catch (Exception e) {
        writeln(e.msg);
    }
}

Rethrowing
Yo

Keeping in mind that it's possible to catch Throwable as well but it's considered less sanitary because it would catch Errors as well, which is supposed to mean "unrecoverable error". There are long discussions about whether one should do that or not...

Ali

Reply via email to