I get that this was made to replace somewhere that's currently raising a `ValueError`, but I'm wondering what the best practice on this is. It seems nice that you can subclass certain exception types, but it also seems like it might lead to some very confusing errors down the road if someone tries to catch a `ValueError` but ends up also catching this guy. Just raising as a thought