I understand, but it seems like a bad tradeoff to me in a language with safety as a primary feature. '.lines()' looks like the way to do line iteration in rust, so people will use it without thinking especially as it is part of the std.io introduction.
On Wed, Feb 19, 2014 at 8:36 AM, Tim Kuehn <[email protected]> wrote: > > > > On Tue, Feb 18, 2014 at 11:52 PM, Phil Dawes <[email protected]>wrote: > >> Is that not a big problem for production code? I think I'd prefer the >> default case to be to crash the task than deal with a logic bug. >> >> The existence of library functions that swallow errors makes reviewing >> code and reasoning about failure cases a lot more difficult. >> > There are other methods that allow one to read lines and handle error > cases. `Lines` is a convenience method by design. > > >> On Tue, Feb 18, 2014 at 11:02 AM, Kang Seonghoon <[email protected]>wrote: >> >>> I think the following documentations describe this behavior pretty well. >>> >>> >>> http://static.rust-lang.org/doc/master/std/io/trait.Buffer.html#method.lines >>> http://static.rust-lang.org/doc/master/std/io/struct.Lines.html >>> >>> As the documentation puts, this behavior is intentional as it would be >>> annoying for casual uses otherwise. >>> >>> 2014-02-18 17:16 GMT+09:00 Phil Dawes <[email protected]>: >>> > Hello everyone, >>> > >>> > I was cutting and pasting the following example from the std lib docs: >>> > >>> > http://static.rust-lang.org/doc/master/std/io/index.html >>> > Iterate over the lines of a file >>> > >>> > use std::io::BufferedReader; >>> > use std::io::File; >>> > >>> > let path = Path::new("message.txt"); >>> > let mut file = BufferedReader::new(File::open(&path)); >>> > for line in file.lines() { >>> > print!("{}", line); >>> > } >>> > >>> > .. and I noticed that file.lines() swallows io errors. Given that this >>> code >>> > will probably be copied a bunch by people new to the language >>> (including >>> > me!) I was thinking it might be worth adding a comment to point this >>> out or >>> > changing to remove the source of bugs. >>> > >>> > (BTW, thanks for Rust - I'm enjoying following the language and hope >>> to use >>> > it as a safer replacement for C++ for latency sensitive code.) >>> > >>> > Cheers, >>> > >>> > Phil >>> > >>> > >>> > _______________________________________________ >>> > Rust-dev mailing list >>> > [email protected] >>> > https://mail.mozilla.org/listinfo/rust-dev >>> > >>> >>> >>> >>> -- >>> -- Kang Seonghoon | Software Engineer, iPlateia Inc. | >>> http://mearie.org/ >>> -- Opinions expressed in this email do not necessarily represent the >>> views of my employer. >>> -- >>> >> >> >> _______________________________________________ >> 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
