我希望改进PHP程序中的错误处理和调试,并需要一些建议。让我们说我有这个功能(绝对没有用......只是做了它):
function foo($bar) {
foreach($bar as $x):
if($x == 'something') {
return 'found something'
}
endforeach;
}
如果我告诉C该函数是为了返回某些东西,那么上面就不允许说C语句。这是因为$x
可能永远不会等于'something'
。
这是改善我的功能的一步吗?
function foo($bar) {
foreach($bar as $x):
if($x == 'something') {
return 'found something'
}
endforeach;
throw new Exception('some exception');
}
它仍然不能确保函数返回..除非抛出新的异常返回,但我不这么认为。没有比这样做更好的方法或错误处理吗? :
function foo($bar) {
foreach($bar as $x):
if($x == 'something') {
return 'found something'
}
endforeach;
throw new Exception('some exception');
return -1;
}
然后检查函数是否在代码中的其他位置返回-1?
谢谢:)。
答案 0 :(得分:2)
从函数中抛出异常不允许函数返回。即使它确实如此,你也不会有机会查看返回值,因为PHP会要求立即在catch块中处理异常。
如果$x
永远不能等于'something'
,则需要返回-1,不要在函数内抛出任何异常。但是如果你要在调用代码返回-1 时抛出异常,你可能会忘记返回该值。直接抛出异常,并在调用代码的catch块中处理它。
答案 1 :(得分:0)
function Demo()
{
try
{
// Your logic here
}
catch(Exception $e)
{
error_log($e->getMessege(),3,'error.log');
}
}