如何捕获Symfony 4中引发的所有异常(包括在控制台,phpunit,错误配置等中引发的异常)

时间:2019-06-24 19:28:04

标签: php exception symfony4

Symfony 4抛出许多异常。例如:控制台命令异常,错误的YAML配置异常(也出现在控制台中),请求期间的异常等。 不幸的是,并非所有这些都可以通过记录在案的解决方案来捕获: https://symfony.com/doc/current/reference/events.html#kernel-exception 没有控制台异常会触发kernel.exception事件。

我正在使用Symfony 4.2进行尝试。*

我想出了一个丑陋的解决方案,其中我重写了一种内核类方法(Kernel.php)。 但是文档没有对此解决方案做任何说明,我想知道是否有更好的方法来捕获所有异常,并使用Monolog记录它们。

    /**
     * @throws \Throwable
     */
    protected function initializeContainer() {

        try {
            $container = parent::initializeContainer();
        } catch (\Throwable $throwable){
            // here i can handle those exceptions/errors
            $this->logCriticalErrors($throwable);
            throw $throwable;
        }
        return $container;
    }

我希望捕获并记录所有可能引发的异常,包括:任何已安装捆绑软件的YAML配置错误,直接在PHPUnit测试中引发的异常等在一个文件中。

0 个答案:

没有答案