Symfony 3 处理错误

Symfony 3 handling errors

有没有办法处理来自我的 symfony 控制器的所有错误,例如,如果我收到此错误:

在我的控制器中有没有办法使用 try/catch 来得到这个错误?。例如:

class SomeClass extends Controller
{
    public function doSomethingAction(Request $request){
        //do something
        try {
            //do something
        }
        catch(\Exception $e){
            dump("ERROR:".$e->getMessage()); //<--this is not dumping anithing
        }
    }
}

我总是在网络通话预览中收到红屏消息:

而不是像这样的东西:

“错误:类型错误:参数 1 传递给......

使用 PHP 7,您可以处理 PHP 错误,例如来自不匹配类型(如您的示例)的 TypeErrors 以及通过捕获其共享接口 Throwable 的异常。

你应该小心这一点,尤其是外部控制器,因为这可以防止你看到意外错误,这些错误可能会导致问题发生,或者你看不到你的应用程序的某些部分何时完全损坏。至少你应该有适当的日志记录。

总而言之,您可以像这样捕获错误和异常:

try {
    ...
} catch (\Throwable $error) {
    ...
}