78 points

Meme is funny, but that exception used as flow control hurts.

permalink
report
reply
39 points

Tbf python guidelines encourage it over if/else in cases like this. “Easier to ask for forgiveness than for permission” or something along the lines

permalink
report
parent
reply
33 points

pythonic != good

permalink
report
parent
reply
7 points

Truers, just mentioning it

permalink
report
parent
reply
21 points

Day 598 of asking for a way to tell which functions throw exceptions in Python so I can know when to wrap in try catch. Seems to me that every other language has this, but when I’ve asked for at least a linter that can tell me I’m calling a function that throws, the general answer has been “why would you want that?”

How am I supposed to ask for forgiveness if it’s impossible to know that I’m doing something risky in the first place?

permalink
report
parent
reply
2 points

cant practically anything throw an exception given the right (sometimes extremely remotely possible) circumstances?

permalink
report
parent
reply
8 points

Yeah, for this reason I would pretty much never encourage exceptions in Python over some other form of error handling. It’s so frustrating when called code throws some random exceptions that are completely undocumented. This is one of the few things Java got (sort of) right

permalink
report
parent
reply
1 point

Is this feature common in scripting/interpreted languages? Feels like those two things don’t work together.

permalink
report
parent
reply
0 points

Check out Rust

permalink
report
parent
reply
10 points

python guidelines

Do you have a specific PEP you’re referencing or is this one of those “I assume this must be the case because of how common using try/except statements for flow control are” kind of things?

permalink
report
parent
reply
4 points

Pretty sure its not a PEP, but the python glossary mentions it. Searching ‘python EAFP’ brings up a lot of discussion on the topic too, so if nothing else its definitely a widespread phenomenon

permalink
report
parent
reply
3 points

Like most things in life, context matters. In the OP it seems like the check function is used specifically so it could raise a PaymentException if the payment hasn’t been received… That’s not a “forgiveness/permission” context, this is a yes or no question, hence should have been an if.

permalink
report
parent
reply
11 points

Still hurts, but sometimes it’s the only option.

If you’re trying to confirm things like account existence/deletion, there’s often no “account exists” function to return true or false. You just have to figure out the specific exception thrown and catch that specific one.

The worst are libraries that don’t give specific exceptions, so you have to catch all exceptions then do extra work to tell what the specific situation is. Does the account not exist, or is the system unreachable?

permalink
report
parent
reply
3 points

Yeah, I had a similar case with some authentication middleware I used that was part of a library.

It would always throw an exception when a user wasn’t authenticated instead of just giving me some flag I could check.

Wouldn’t have done it that way, but it was okay for an API controller.

permalink
report
parent
reply
3 points

so you have to catch all exceptions then do extra work to tell what the specific situation is

That’s horrifying. That’s a solid reason to avoid Python like the plague.

permalink
report
parent
reply
4 points

While i also disagree with python’s tendency to use exceptions as control flow

Python is a pretty stellar scripting language. I wouldn’t use it for app dev, but it’s quite handy for the odd automation or CLI task

permalink
report
parent
reply
2 points

nothing wrong with that - it is an exception, as in, the customer is likely lost after that anyway.

permalink
report
parent
reply
30 points

I mean I was originally angry about this toss-up, but since it hit an investment company… good guy Google?

I’m confused now.

permalink
report
reply
92 points

UniSuper is a superannuation fund (think 401k), it’s one of the good ones in that it doesn’t take commissions and profits go to members

Stay confounded at Google’s incompetence.

permalink
report
parent
reply
14 points

This company wasn’t exactly targeted. It could have happened to literally anyone.

permalink
report
parent
reply
106 points

That wasn’t luck - it was best practice backup strategy.

permalink
report
reply
57 points

IMO backups on the same provider aren’t really backups. Good that they had some at a different one.

permalink
report
reply
147 points

Holy fuck whoever was in charge of setting up that disaster recovery needs a million dollar bonus. I get that they’re managing $80B and this should all be standard but people usually don’t listen to IT and take DR seriously. And even if you do set it up, are you going back to check that your backups are functioning properly and have alarms for when it messes up

permalink
report
reply
75 points

Absolutely.

But something tells me they will at most get a recognition award printed from MSWord and a pizza party day at their local office.

permalink
report
parent
reply
20 points

Time to update my off site cold backup(private)

permalink
report
parent
reply
8 points

can I get a copy if I ask very nicely?

permalink
report
parent
reply
25 points

Friendly reminder to every CEO that this could have been a situation where a disgruntled employee accidentally fucks up the off site backup too.

permalink
report
parent
reply

Programmer Humor

!programmerhumor@lemmy.ml

Create post

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.

Community stats

  • 3.6K

    Monthly active users

  • 1.5K

    Posts

  • 35K

    Comments