21 May
2013
21 May
'13
6:57 a.m.
21.05.13 13:05, Hrvoje Niksic написав(ла):
On 05/21/2013 11:56 AM, Serhiy Storchaka wrote:
try: x = d['key'] except KeyError: x = fallback('key')
def fallback(key): if key not in a: raise BusinessError(...) return 1 / a[key] # possible TypeError, ZeroDivisionError, etc
Yes, in that case the exception will appear unintentional and you get the old message — it's on a best-effort basis.
In both cases the BusinessError exception raised explicitly. How do you distinguish one case from another?