I'm looking forward to read this article. Thanks for the link to CargoResult. I am still not sure how this error is pass from the failing task...
On Thu, May 29, 2014 at 11:53 AM, Daniel Fagnan <[email protected]> wrote: >> With things like try! and the various helper methods on Result/Option, > passing errors around is supposed to be easier than in other > languages. I haven't done much with it, so I don't know how well it > works. > > I can attest to it working quite well. > >> What would be Rust alternative, except passing the errors all around > parser? Doesn't it grow parser code by at least 50%? > > I'm actually writing the next version of "Practicality With Rust" covering > error handling, as that's a popular request for new comers coming from > exception-based, or -1 based languages. > > The `try!` macro, along with functions like `map_err()` allow you to > implement custom error and result types similar to `IoError` and `IoResult`, > respectively. [Cargo currently does this, > too.](https://github.com/carlhuda/cargo/blob/master/src/cargo/util/result.rs) > > > -- > Daniel Fagnan > @TheHydroImpulse > http://hydrocodedesign.com > M: (780) 983-4997 > > > On Thu, May 29, 2014 at 12:45 PM, comex <[email protected]> wrote: >> >> On Thu, May 29, 2014 at 2:32 PM, Oleg Eterevsky <[email protected]> >> wrote: >> > What would be Rust alternative, except passing the errors all around >> > parser? Doesn't it grow parser code by at least 50%? >> >> With things like try! and the various helper methods on Result/Option, >> passing errors around is supposed to be easier than in other >> languages. I haven't done much with it, so I don't know how well it >> works. >> >> You can also spawn a task for the parser, since the internal parser >> data structures don't need to be kept around after failure or >> anything; as mentioned in a previous post, a better way to do this >> synchronously on the same thread might be added. >> >> Of course, depending on what you're parsing, you may want to continue >> after errors to report further problems, in which case the exception >> version wouldn't work anyway. >> _______________________________________________ >> Rust-dev mailing list >> [email protected] >> https://mail.mozilla.org/listinfo/rust-dev > > _______________________________________________ Rust-dev mailing list [email protected] https://mail.mozilla.org/listinfo/rust-dev
