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
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/