Re:Where Everything Went Wrong: Error Handling and Error Mes...
by chrismorgan on Friday February 19, 2021 @11:57AM
(#26195097)
Rust actually used to use conditions for its I/O errors, but they were removed as part of the “new runtime” project in 2013, for reasons that are dimmed in my memory by time, but I think they included: quite a lot of complexity, including in ways that had negative performance implications; lack of clarity about where errors could occur; lack of ability to distinguish between errors by source in the handler; more limited potential than hoped in ways that were probably connected to Rust’s ownership orientation; unfamiliarity to users (and Rust had already spent its weirdness budget); and that the actual power of conditions was almost entirely unused (I honestly don’t think I saw any production-like code use handlers for anything interesting, ever).
You can still readily express the concept of conditions in Rust, but it’s no longer baked into the standard library.
You can still readily express the concept of conditions in Rust, but it’s no longer baked into the standard library.