On Wednesday, 12 February 2014 at 03:31:38 UTC, Nick Sabalausky
wrote:

Hmm, my custom toString isn't being executed. Am I doing something wrong here? Same result if I inherit direct from Throwable instead of Exception.

class Fail : Exception
{
    private this()
    {
        super(null);
    }

private static Fail opCall(string msg, string file=__FILE__, int line=__LINE__)
    {
        auto f = cast(Fail) cast(void*) Fail.classinfo.init;

        f.msg  = msg;
        f.file = file;
        f.line = line;

        return f;
    }

    override string toString()
    {
    writeln("In Fail.toString()");
        return "someapp: ERROR: "~msg;
    }

}

It looks like this has changed, and the method that's called now
is:

void toString(scope void delegate(in char[]) sink) const;

I suspect this has broken a lot of custom exception messages,
since everything in core.exception still uses toString() for its
output.

Reply via email to