On Tuesday, 21 February 2012 at 02:23:58 UTC, Andrei Alexandrescu wrote:
On 2/20/12 7:02 PM, Juan Manuel Cabo wrote:
oops, sorry!! I just saw a post by someone named Jose. My thousand apollogies!!

I got confused. It was your argument I meant to refer to - adding info to the exception in flight.

Andrei

I'd implement this along these lines:

class WithErrorCode(E) : E {
  int errorCode;
this(Args)(int err, Args args) { this.errorCode = err; super(args); }
}

and add this wrapper where relevant. e.g. replace:
throw new FileNotFoundException(...);
with something like:
throw new WithErrorCode!FileNotFoundException(-1, ...);

This is a localized change that doesn't affect all uses of exceptions and it remains type-safe. surely this is a better solution than the hash table?

Reply via email to