Laravel 中使用 try 和 catch 进行错误处理

问题描述 投票:0回答:2

我想在我的应用程序中实现良好的错误处理,我强制使用此文件来捕获错误。

应用\服务\PayUService

try {
  $this->buildXMLHeader; // Should be $this->buildXMLHeader();
} catch (Exception $e) {
        return $e;
}

应用\控制器\产品控制器

function secTransaction(){
  if ($e) {
    return view('products.error', compact('e'));
  }
}

这就是我得到的。

我不知道为什么 Laravel 没有将我重定向到视图。 这个错误是被迫的吗?

php laravel error-handling try-catch
2个回答
169
投票

您位于

namespace
内,因此您应该使用
\Exception
来指定全局命名空间:

try {

  $this->buildXMLHeader();

} catch (\Exception $e) {

    return $e->getMessage();
}

在您的代码中,您使用了

catch (Exception $e)
,因此
Exception
正在被搜索/作为:

App\Services\PayUService\Exception

由于

Exception
内部没有
App\Services\PayUService
类,因此它不会被触发。或者,您可以在课程顶部使用
use
语句,例如
use Exception;
,然后您可以使用
catch (Exception $e)


-2
投票
try {

  $this->buildXMLHeader();

} catch (\Exception $e) {

    return $e->getMessage();
}
© www.soinside.com 2019 - 2024. All rights reserved.