Agree a 100% and I’m glad others are open for alternatives to C++/Python/java-style exceptions as well.
I don’t see a contradiction between floating point exceptions (and error stop
for that matter) and other ways of communicating other classes of errors from a procedure call. Most programming languages separate between recoverable and unrecoverable errors. A recoverable error would be one where the caller get the option to act upon an error. An unrecoverable error would be an error where the application is terminated after it occurred.
Treating invalid floating point operations as unrecoverable errors seems fair to me, especially since it’s optional. There are other types of errors which should be handled gracefully giving the caller the option to act upon the error and they should be handled through a different mechanism.