Standard feature of Common Lisp condition system (over 30 years old).
https://lisp-docs.github.io/cl-language-reference/chap-9/j-b...
The CL condition system always gets brought up when people unfamiliar with effects see effects for the first time (example: https://news.ycombinator.com/item?id=38813484, another example: https://lobste.rs/s/12m2f0/algebraic_effects_another_mistake).
But while the condition system can do many things you can also do with effects, they cannot do everything.
Here's another discussion on this: https://news.ycombinator.com/item?id=44078743
The CL condition system always gets brought up when people unfamiliar with effects see effects for the first time (example: https://news.ycombinator.com/item?id=38813484, another example: https://lobste.rs/s/12m2f0/algebraic_effects_another_mistake).
But while the condition system can do many things you can also do with effects, they cannot do everything.
Here's another discussion on this: https://news.ycombinator.com/item?id=44078743