should have another assertion to cover the case if no exception is thrown, like `fail("exception expected");`