Silex异常处理程序

Tho*_*mas 0 php symfony silex

我有一个大问题我不知道为什么异常不会被silex异常处理程序捕获?

我的简单代码如下所示:

<?php

use Silex\Application;

use Silex\Provider\ValidatorServiceProvider;
use Silex\Provider\FormServiceProvider;
use Symfony\Component\HttpFoundation\Request;

$app = new Application();

// SPL Logic Exceptions
// Handle other exception as 500 errors
$app->error(function (\Exception $e, $code) {
exit('asd');
});
throw new Exception('test');
return $app;
Run Code Online (Sandbox Code Playgroud)

结果是:

致命错误:消息'test'的未捕获异常'Exception'

igo*_*orw 11

error监听器只能够捕捉来自控制器或内抛出的异常before的中间件.这是一个有效的例子:

$app = new Silex\Application();

$app->error(function (\Exception $e, $code) {
    exit('asd');
});

$app->before(function ($request) {
    throw new Exception('test');
});

$app->run();
Run Code Online (Sandbox Code Playgroud)