182
The ???? operator (programming.dev)
submitted 11 months ago* (last edited 11 months ago) by snaggen@programming.dev to c/rust@programming.dev

I found this funny.

The context is as explained by @laund@hachyderm.io

the issue is that you can't return from inside a closure, since the closure might be called later/elsewhere

and this post was the asnwer to the question by @antonok@fosstodon.org

you got me curious what the record for the longest ? operator chain on crates.io is

Original post: https://fosstodon.org/users/antonok/statuses/111134824451525448

you are viewing a single comment's thread
view the rest of the comments
[-] KillTheMule@programming.dev 32 points 11 months ago

While funny, this also highlights part of why I like rust's error handling story so much: You can really just read the happy path and understand what's going on. The error handling takes up minimal space, yet with one glance you can see that errors are all handled (bubbled up in this case). The usual caveats still apply, of course ;)

[-] 1984@lemmy.today 16 points 11 months ago

I'm writing my Rust wrong... I have match statements everywhere to the degree that it's cluttering up everything.

[-] aloso@programming.dev 7 points 11 months ago* (last edited 11 months ago)

If all you do in the Err(e) => ... match arm is returning the error, then you absolutely should use the ? operator instead.

If the match arm also converts the error type into another error type, implement the From trait for the conversion, then you can use ? as well.

If you want to add more information to the error, you can use .map_err(...)?. Or, if you're using the anyhow crate, .with_context(...)?.

[-] sugar_in_your_tea@sh.itjust.works 3 points 11 months ago

You can also do map_err, which is a bit cleaner while keeping the mapping obvious. If you really need to do some logic on error, extracting that to the calling function is often better.

load more comments (2 replies)
load more comments (2 replies)
this post was submitted on 27 Sep 2023
182 points (97.4% liked)

Rust

5754 readers
48 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS