如何在服务中进行适当的错误处理

时间:2018-03-09 09:17:41

标签: symfony error-handling symfony4

我正在为Symfony 4项目编写一个小型服务 我只是想知道我的错误处理是不是一个好主意。 我的班级目前看起来像这样:

namespace App\Service;

use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Filesystem\Exception\;

/**
 * Class XMLHelper
 * @package App\Service
 */
class XMLHelper
{

    public function getContent(string $path): array
    {
        $fileSystem = new Filesystem();
        if ($fileSystem->exists($path)) {

            libxml_use_internal_errors(true);
            $object = simplexml_load_file($path);

            if ($object === false) {
                $str = 'Failed loading XML: ';
                foreach(libxml_get_errors() as $error) {
                    $str = $error->message . ', ';
                }
                throw new \UnexpectedValueException($str);
            }

            return $object;

        } else {
            throw new \FileNotFoundException('File ' . $path . ' not found.');
        }
    }
}

我的问题是,我是否真的需要它? symfony会不会抛出 无论如何都要出错。输出不是多余的吗?怎么做 你做得最好还是普遍正确?如果你有自己的 服务中的例外情况。

1 个答案:

答案 0 :(得分:0)

IMO你应该毫不犹豫地在适当的时候抛出异常。您的代码看起来很好,它提供了有关遇到的exeptions的详尽信息。

与Symfony无关,由你的代码在正确的地方抛出正确的异常。

希望这有帮助。

P.S。不要忘记libxml_clear_errors();