Silex异常处理程序

时间:2013-12-01 11:14:35

标签: 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;

结果是:

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

1 个答案:

答案 0 :(得分: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();