在我的应用程序中,我从 url 加载 xml 以便解析它。
但有时该网址可能无效。在这种情况下我需要处理错误。
我有以下代码:
$xdoc = new DOMDocument();
try{
$xdoc->load($url); // This line causes Warning: DOMDocument::load(...)
// [domdocument.load]: failed to open stream:
// HTTP request failed! HTTP/1.1 404 Not Found in ...
} catch (Exception $e) {
$xdoc = null;
}
if($xdoc == null){
// Handle
} else {
// Proceed
}
我知道我可能做错了,但是处理这种异常的正确方法是什么?我不想在我的页面上看到错误消息。
DOMDocument::load() 的手册说:
如果传递空字符串作为
文件名或空文件被命名,a
将生成警告。这
警告不是由 libxml 生成的,并且
无法使用libxml的错误处理
处理功能。
但没有关于如何处理的信息。
Thanks.
据我所知文档 http://www.php.net/manual/en/domdocument.load.php,处理此方法发出的警告很棘手,因为它们不是由 libxml 扩展生成的,因此无法通过libxml_get_last_error()
。您可以使用错误抑制运算符并检查返回值false
...
if (@$xdoc->load($url) === false)
// ...handle it
...或注册错误处理程序,错误时抛出异常 http://php.net/manual/en/class.errorexception.php:
function exception_error_handler($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
然后抓住它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)