在Laravel中抛出错误(没有说服力)

在Laravel中抛出错误(没有说服力),laravel,laravel-4,Laravel,Laravel 4,在我的包中,我对用户id执行检查: //check if(!$this->checkId($id)) //error 如果失败,我需要抛出一个错误,因为我的包中的方法将无法工作,我需要通知用户 请注意,这不是一个雄辩的查询,所以我不需要任何查找或失败方法 如何在laravel中执行此操作?…所以只需抛出一个错误 if(!$this->checkId($id)) //error { App::abort(500, 'CheckId() failed'); } 或 我同意前

在我的包中,我对用户id执行检查:

//check
if(!$this->checkId($id)) //error
如果失败,我需要抛出一个错误,因为我的包中的方法将无法工作,我需要通知用户

请注意,这不是一个雄辩的查询,所以我不需要任何查找或失败方法


如何在laravel中执行此操作?

…所以只需抛出一个错误

if(!$this->checkId($id)) //error
{ 
    App::abort(500, 'CheckId() failed');
}


我同意前面的答案,但我会从
checkId()
方法中抛出一个异常,因为检查通过或失败(并抛出异常)


谢谢,推荐哪一个?我的情况是,应用程序为我的包提供了一个id,然后我对id做了一些事情,如果失败了,我该怎么办?中止或引发异常?如果中止应用程序-则强制应用程序失败。但是,如果抛出异常,您就为使用代码的人提供了捕获异常并采取措施的机会。如果他们什么也不做,它将中止应用程序。
if(!$this->checkId($id)) //error
{ 
    throw new Exception("CheckId() failed");
}
class CheckIdException extends Exception
{
}

class WhateverClass
{
    public function checkId($id)
    {
        // do the check
        $passes = ....

        if (! $passes) {
            throw new CheckIdException('CheckId() failed');
        }

        return true;
    }
}


// somewhere in the app code
try {
    $this->checkId($id);
} catch (CheckIdException $e) {
    return Response::json(['error' => 'checkId', 'message' => 'meaningul error description']);
} catch (Exception $e) {
    return Response::json(['error' => 'UnknownError', 'message' => $e->getMessage()]);
}

// yay, ID check passes! Continue!