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.


Reply via email to