On Sat, Apr 9, 2016 at 7:25 AM, Rian Hunter firstname.lastname@example.org wrote:
I want a consistent opt-in idiom with community consensus. I want a clear way to express that an exception is an error and not an internal bug. It doesn't have to catch 100% of cases, the idiom just needs to approach consistency across all Python libraries that I may import.
If the programmer doesn't pay attention to the idiom, then is_a_bug() will never return true (or not True if it's is_not_a_bug()). AssertionError is already unambiguous, I'm sure there are other candidates as well.
I'm not the first or only one to want something like this http://blog.tsunanet.net/2012/10/pythons-screwed-up-exception-hierarchy.html
The problem with posts like that is that it assumes there's some kind of defined category of "stuff you always want to catch" vs "stuff you never want to catch". This simply isn't the case. You ONLY catch the exceptions you truly understand. Everything else, you leave. There's seldom a need to catch a broad-but-specific subset of exceptions, and those needs aren't entirely consistent, so they fundamentally cannot be codified into the hierarchy.