There are also huge differences between exception alternatives, and I definitely think more progress is possible. I also dislike how Go approaches exceptionless, but Rust does a far better job. Hare seems like it could have one of the best approaches (so far) but I haven't actually used it.
Erlang/Elixir/Gleam are also something I want to try out. Allowing things to just crash and restart is definitely a different perspective worth learning about.
It reminded me about one thing that I dislike about exception handing in C#, that methods don't have to declare the exceptions that they throw, unlike Java.
And the thing I disliked about the Java way was declaring exceptions that would be panics in Rust.
I also like that ? Rust operator for propagating errors.
I've done some Erlang and I definitely like Erlang monitors.
Maybe the Rust way combined with monitors would be the ultimate in error handling :-)
But WTF is wrong exceptions?! And by that I mean try/catch/finally.
I wouldn't use a language that doesn't have them.
The lack of exceptions in GO is just one of the reasons I hate it.
Go is a good example of what life would be without exceptions, code polluted with error handing.