我正在使用Pear的Cache_Lite,它看起来真的很容易使用。我不能完全处理的一个方面是如何抛出异常来找出错误是什么。根据文档,在下面的$options数组中,我尝试了'pearErrorMode' => CACHE_LITE_ERROR_DIE
,它将停止脚本并向我显示错误(即,cacheDir不存在,如下面的代码所示)。
然而,我不一定想要向用户显示这个错误(也就是说,我可能会记录它,并给他们一个自定义消息)。然后我认为我可以使用'pearErrorMode' => CACHE_LITE_ERROR_RETURN
,它应该返回梨错误对象。我的印象(显然不正确)是echo $e->getMessage();
将访问Pear错误对象并将其打印出来。然而,我得到的只是一个空白屏幕。那么我的问题是,我如何才能做一个标准的尝试/捕获,然后访问错误对象?我的代码片段(或多或少是Pear手册的副本)如下所示:
<?php
require_once('Cache/Lite.php');
$id = '123';
$options = array(
'cacheDir' => '/oops_I_am_not_a_directory/', //this is the problem line!
'lifeTime' => 3600
);
try {
$Cache_Lite = new Cache_Lite($options);
if ($data = $Cache_Lite->get($id)) {
echo $data;
} else {
$data = "blah";
$Cache_Lite->save($data);
}
} catch (Exception $e) {
echo $e->getMessage();
}
?>
_RETURN
返回错误对象作为函数的返回值:
$error = $cache->get(..);
$error = $cache->save(..);
你可以使用
来检查是否有错误$retval = $cache->get(..);
if (PEAR::isError($retval)) {
echo $retval->getMessage() . "'n";
}
或者,您可以通过设置CACHE_LITE_ERROR_EXCEPTION
或PEAR_ERROR_EXCEPTION