It can depend on general guidelines too like "no if without an else", but I often use this pattern when possible : put the checks (==with an early exit/raise/return) at the beginning of the block and treat the rest of the block as the "normal" track. A way to quickly see what is exceptional behaviour and what is normal.