The only difference between exceptions and Result are that you need to change your return type to Result, and that you need to add a ? after calls that might fail.
There's also a bit of annoying typing stuff involved, but generally with something like the anyhow crate you can handwave that away too.
It's the only difference if you're only considering blub exceptions, and not a nice exception system in which raising an exception doesn't immediately unwind, so that you can have remote handlers choosing local restart points and such.
> you need to change
Say I can't change it. I want to pass the exception through a third party library I don't control. I don't want to fork it, or can't.
Sum types with pattern matching are definitely nicer than some integer error codes or what have you, but for error handling, they are just a lipstick on error codes.
People outside of the Rust bubble do know what these concepts are, and about languages like OCaml.
Moreover, everyone who ever had anything to do with the concept of the development of exceptions was not an idiot who just didn't see the light of returning a sum type.
There's also a bit of annoying typing stuff involved, but generally with something like the anyhow crate you can handwave that away too.