Use @Throw for fail callback