Rust&#x27;s error handling is, empirically, not unusable. I use it every day.<p>Even Go&#x27;s error handling clearly isn&#x27;t unusable, as controversial as it is, and try! is pretty much just a more sugary version of it.<p>Also, we were well aware of monads when we designed the Rust error handling system and in particular why they do not work very well in languages that have rich, imperative control flow structures. try! is basically just monads for imperative languages. To see this, work through what happens if you try to add break&#x2F;continue&#x2F;return to Haskell&#x27;s system.