我在一个雄辩的模型上执行各种任务。
e.g。
飞行存储库
function store($request){
$flight = new Flight;
$flight->name = $request->name;
$flight->save();
}
从控制器调用此方法:
public function store(FlightRepository $flight, $request){
$flight->store($request);
}
如何应对潜在的错误?试着抓?它应放在控制器或存储库中的哪个位置?无论如何我会抓到什么异常类型?
答案 0 :(得分:1)
根据Laravel 5.0及以上版本,
Laravel应用程序的任何部分抛出的所有异常,异常都被report()
文件的Exception/Handler.php
方法所捕获,如下所示:
<强>已更新强>
你的回购应该抛出这样的例外:
class CustomRepository extends Repository
{
public function repoMethod($id)
{
$model = Model::find($id);
// Throw your custom exception here ...
if(!$model) {
throw new CustomException("My Custom Message");
}
}
}
您的Handler
应该像这样处理CustomException
:
/**
* Report or log an exception.
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
*
* @param \Exception $exception
* @return void
*/
public function report(Exception $exception)
{
// Handle your exceptions here...
if($exception instanceof CustomException)
return view('your_desired_view')->with('message' => $exception->getMessage());
parent::report($exception);
}
希望这有帮助!