returning false instead of throwing exception