Following "Samurai principle", I'm trying to do this on my functions but seems it's wrong...
return <value> if <bool> else raise <exception>
Is there any other "beautiful" way to do this? Thanks
Python raise Keyword is used to raise exceptions or errors. The raise keyword raises an error and stops the control flow of the program. It is used to bring up the current exception in an exception handler so that it can be handled further up the call stack.
As a Python developer you can choose to throw an exception if a condition occurs. To throw (or raise) an exception, use the raise keyword.
If you absolutely want to raise
in an expression, you could do
def raiser(ex): raise ex return <value> if <bool> else raiser(<exception>)
This "tries" to return the return value of raiser()
, which would be None
, if there was no unconditional raise
in the function.
Inline/ternary if
is an expression, not a statement. Your attempt means "if bool, return value, else return the result of raise expression
" - which is nonsense of course, because raise exception
is itself a statement not an expression.
There's no way to do this inline, and you shouldn't want to. Do it explicitly:
if not bool: raise MyException return value
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With