I have fractionally more sympathy for the post-conditional `if` - `statement if x;` - because at least then you're not trying to invert things at the end of a sentence.
Only fractionally because I hate all post-conditionals with a passion. They're the garden paths[1] of coding.
Hum... The only thing that changes is that the exception comes on its negated form. It doesn't make code scanning any harder, or interpreting it any more convoluted.
Personally, I do hate both of those (including the Python's ternary operator). But there is something with the bashism it shares, of `do_it() or die "trying"` that looks quite nice.
Only fractionally because I hate all post-conditionals with a passion. They're the garden paths[1] of coding.
[1] https://en.wikipedia.org/wiki/Garden-path_sentence