Raise if fail=True else return None