On Wednesday, 25 August 2021 at 14:42:07 UTC, Steven
Schveighoffer wrote:
I think it's possible to work with some mechanics that aren't
necessarily desirable. Something like:
```d
ErrorHandler error = registerErrorHandler;
error.onFailure({writeln("division failed");});
error.onSuccess({writeln("division succeeded");});
...
```
This is kind of like what Common Lisp has with its condition
system. One downside of this approach in D is that it would not
work well with static analysis features like `@safe`, `nothrow`,
etc., since the handlers are not known until runtime. But it does
offer a lot more flexibility than traditional exceptions.