我想防止PHP在发生错误或加载失败的情况下(例如从远程服务器)引发错误。最近我开始使用try-catch块来避免致命错误,所以用户不知道有什么事情搞砸了。处理异常并继续工作,没有错误
看我的代码:
try
{
$flashRAW = file_get_contents($getXml);
$flashXML = simplexml_load_string($flashRAW);
}
catch(Exception $e)
{
return $e->getMessage();
}
$xmlString = $flashXML->asXML();
使用 “回报” 是我发明的(我想,我从来没有见过那个...)。随着返回,我的应用程序将继续工作,我不会有“试图获得非对象属性”错误。没有回报,我会得到它 - 我认为这是愚蠢的,因为我使用try-catch来防止这种...
正在使用返回这种方式行吗?更好的方式来处理异常,并使该应用程序将继续工作,而没有致命的错误?我读过的地方是try-catch旨在处理逻辑错误并增加内存消耗。
之前,我看到人们在使用前在catch块的回报,所以它不是一个新的发明。但是你可以做什么(并且应该这样做)是将它记录在某个文件中,以便管理员可以查看你获得的问题(包括尽可能多的信息,userid,日期/时间,url等),而不是返回,处理出现问题:显示错误消息,告诉他们联系管理员或重试。 – Husman 2013-03-04 10:45:19
你认为我可以在生产环境中做到这一点吗?我想我不应该。记录当然好,但显示错误给用户恕我直言不是。 – 2013-03-04 10:48:44
我想你误会了。显示错误是可以的,只要它很好的错误信息(即“对不起你找的文件找不到”或“抱歉登录失败,再试一次”)而不是神秘的PHP错误信息,它们不应该显示为结束用户。 – Husman 2013-03-04 10:54:00