0

我想防止在我加载错误或失败(例如从远程服务器)的情况下 PHP 抛出错误的情况。最近我开始使用 try-catch 块来避免致命错误,所以用户不知道有些事情搞砸了。

看我的代码:

try
{
    $flashRAW = file_get_contents($getXml);
    $flashXML = simplexml_load_string($flashRAW);
}
catch(Exception $e)
{
    return $e->getMessage();
}

$xmlString = $flashXML->asXML();

使用“return”是我的发明(我想,我从未见过......)。返回后,我的应用程序将继续工作,并且不会出现“尝试获取非对象的属性”错误。没有回报,我会得到它 - 我认为这很愚蠢,因为我使用 try-catch 来防止这种情况......

以这种方式使用返回可以吗?处理异常并使该应用程序继续工作而不会出现致命错误的更好方法是什么?我在某处读到 try-catch 旨在处理逻辑错误并增加内存消耗。

4

2 回答 2

1

我认为您遇到的问题是因为如果出现异常,则未定义“$flashRAW”。

您应该在调用“$flashXML->asXML()”之前检查“$flashRAW”。

如果您使用返回,则函数/页面中不会执行任何代码,具体取决于您拥有代码的位置。

是否使用 return 的选择更多地基于用例。所以取决于你如何使用它。

于 2013-03-04T10:35:18.543 回答
0

如果你想捕获它引发的异常,你需要使用libxml_use_internal_errorstry/catch ,在你的块之前这样做

libxml_use_internal_errors(true);
于 2013-03-04T10:51:04.597 回答