最近两天就在想这个问题
最终我归纳为,使用try catch是因为PHP中的异常处理机制,可以把可能出错的代码段放在try中,如果报错就直接抛出异常,不会影响try catch 代码后的执行
比如 举个例子
function file_put_contents_test($is_error)
{
if ($is_error)
{
throw new Exception("Error test!");
}
else
{
return 'OK';
}
}
file_put_contents_test(true);
echo 'RUN'; //不会执行这一行
之前没有显示错误,原因是我用的mac mamp pro里面的php.ini设置原因,把php.ini设置中的display_errors=On就可以了
接着我们再来看看 加了try catch后有什么效果
try
{
file_put_contents_test(true);
echo '呵呵呵呵';
}
catch(Exception $e)
{
echo '错误:'.$e->getMessage();
}
echo 'RUN';//这句会执行 即使抛出异常 也不会影响后面的流程 也就是try catch 让异常变得可控制
也可以自己写异常处理类去继承Exception