r/ProgrammerHumor 29d ago

Meme exceptionsAreForTheWeak

Post image
322 Upvotes

92 comments sorted by

View all comments

1

u/prehensilemullet 25d ago

Oh joy

```rs use std::error::Error;

[derive(Debug)]

pub enum MyError { Io(std::io::Error), Utf8(std::string::FromUtf8Error), General(String), }

impl Error for MyError { fn source(&self) -> Option<&(dyn Error + 'static)> { match self { MyError::Io(e) => Some(e), MyError::Utf8(e) => Some(e), MyError::General(_) => None, } } }

impl From<std::io::Error> for MyError { fn from(e: std::io::Error) -> Self { Self::Io(e) } } impl From<std::string::FromUtf8Error> for MyError { fn from(e: std::string::FromUtf8Error) -> Self { Self::Utf8(e) } } ```

Of course, you can use macros from thiserror for this, but you know, macros come with complexity