【发布时间】:2021-02-18 05:51:03
【问题描述】:
我对 Laravel 8 中的错误报告有疑问。
根据文档,应该可以在自定义异常中实现自定义 report() 或 render() 方法。
我创建了一个自定义异常如下:
class AdminException extends Exception
{
protected $userId;
public function __construct($message='', $userId=0) {
parent::__construct($message);
$this->setUserId($userId);
}
public function getUserId() {
return $this->userId;
}
private function setUserId($userId) {
return $this->userId = $userId;
}
public function report(){
dd('in custom admin exception report');
}
public function render($request){
dd('in custom admin exception render');
}
}
问题是,当我故意从控制器抛出此错误时,我没有在异常中遇到任何这些方法。
为了尝试弥补这个问题,我在 Handler.php 文件中添加了如下方法:
$this->reportable( function(AdminException $e){
dd('in reportable method from handler');
});
$this->renderable( function(AdminException $e, $request){
dd('in renderable method from handler');
});
但是这些方法都没有被击中。有没有人在 Laravel 8 中有自定义异常的经验?文档非常不清楚,这是如何工作的?我应该只使用 Handler.php 文件的 report() 和 render() 方法吗?
谢谢!
【问题讨论】: