Always throw an exception upon failing a pass

Treat failures as soft by wrapping the call in a condition-case instead.

This change partially reverts c4480877da5e05339986db00dce595a2a46a5c2d.