add exception, but failed. use return value.