raise statement on a conditional expression

conditional-statements, exception, python, raise

Solution

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

Problem

How do I elegantly implement the "Samurai principle" (return victorious, or not at all) on my functions? ``` return <value> if <bool> else raise <exception> ```

Original source