我正在为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会不会抛出 无论如何都要出错。输出不是多余的吗?怎么做 你做得最好还是普遍正确?如果你有自己的 服务中的例外情况。
答案 0 :(得分:0)
IMO你应该毫不犹豫地在适当的时候抛出异常。您的代码看起来很好,它提供了有关遇到的exeptions的详尽信息。
与Symfony无关,由你的代码在正确的地方抛出正确的异常。
希望这有帮助。
P.S。不要忘记libxml_clear_errors();