Exception handling - proper failure + error message instead of just asserts