Added new assertion mechanism to flexibly allow the caller to throw, terminate, or ignore assertion failures