在Laravel中抛出错误(没有说服力)
在我的包中,我对用户id执行检查:在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'); } 或 我同意前
//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!