
On 10/30/2014 11:13 AM, Ethan Furman wrote:
On 10/30/2014 08:03 AM, Javier Dehesa wrote:
This happens to me with some frequency:
result = f(args) if not result: # of "if result is None:" raise Exception(...)
What if I could just say?
result = f(args) or raise Exception(...)
Seems like a decent idea, but you can already have most of that:
result = f(args) or raise_exc(ValueError, 'args must be ...')
and then have 'raise_exc' do the exception raising work.
No need to pass exception class and message separately instead of an exception instance. def raiser(exc): raise exc print(1 or raiser(ValueError('null value'))) print(0 or raiser(ValueError('null value')))
1 Traceback (most recent call last): File "c:\programs\python34\tem.py", line 5, in <module> print(0 or raiser(ValueError('null value'))) File "c:\programs\python34\tem.py", line 2, in raiser raise exc ValueError: null value
It does add another line to the trackback, but this is pretty minor. -- Terry Jan Reedy