Hacker News new | ask | show | jobs
by sethammons 954 days ago
python is where I learned to hate exceptions as control flow - Twisted is twisted. Go was such a breath of fresh air. Now I'm back in python primarily and I am constantly wondering what my functions actually take and actually return. Exceptions are just spooky GOTO and a distance. Our logs are littered with them and have to use Sentry to tell us "oops, you introduced a new error path." Our builds are full of warnings and versioning issues. I've yet to see a decent sized python project that is not a mess.
1 comments

> Exceptions are just spooky GOTO and a distance

I couldn't agree more! When you throw exceptions it's unclear where the control flow will go

I just don't see how multiple levels of

    if err:
        return nil, err
in the call stack makes things any clearer? Or how having many instances of that snippet scattered everywhere makes the code easier to read?
Agreed. It's also objectively worse because you lose the stack trace in the final exception you will display to your user. Enjoy debugging that when a customer sends you an error.
Or you could use a 3rd party error package that’s not a good excuse because the standard don’t have it as a priority
It makes the happy path harder to read but the unhappy paths much clearer. I hated this aspect of Go when I first started with the language but I love it now