我是一个强大的Python程序员,但不是那里谈到PHP。我需要尝试一些东西,如果不能解决问题,请做其他事情。什么是PHP的等效Python的尝试:...除了:
这是它会是什么样子在Python:
try:
print "stuf"
except:
print "something else"
会变成这样在PHP中呢?
我是一个强大的Python程序员,但不是那里谈到PHP。我需要尝试一些东西,如果不能解决问题,请做其他事情。什么是PHP的等效Python的尝试:...除了:
这是它会是什么样子在Python:
try:
print "stuf"
except:
print "something else"
会变成这样在PHP中呢?
try {
// do stuff ...
} catch (Exception $e) {
print($e->getMessage());
}
http://php.net/manual/en/language.exceptions.php
try {
print 'stuff';
} catch (Exception $e) {
var_dump($e);
}
注:这仅适用例外,不是错误。
请参阅http://www.php.net/manual/en/function.set-error-handler.php。
PHP 5有exception model:
try {
print 'stuff';
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
假设你正在试图捕获异常,看看http://php.net/manual/en/language.exceptions.php
你可以尝试像
东西try {
echo "Stuff";
} catch (Exception $e) {
echo "Something Else";
}
PHP本身不支持像Python那样的错误捕获,除非您重写默认行为并且set your own error handler。 PHP的try
- catch
最近才被添加到版本5的语言中,并且它只能捕获您明确指定的例外throw
。
所以基本上,PHP区分错误和异常。错误还没有被模块化,并且可以像Python一样提供给用户。我认为这与PHP开始为collection of dynamic web scripts这一事实有关,它随着时间的推移而增长并获得更多功能,并且最近才提供改进的OOP支持(即版本5);而Python从根本上支持OOP和其他元功能。和异常处理from the beginning。
下面是一个例子使用(再次强调,throw
是必要的,否则什么也不会被抓):
function oops($a)
{
if (!$a) {
throw new Exception('empty variable');
}
return "oops, $a";
}
try {
print oops($b);
} catch (Exception $e) {
print "Error occurred: " . $e->getMessage();
}
+1对于其他答案错过的有用点。 – Spudley 2010-10-18 09:03:52
这就是我所需要的,谢谢。我可以在大约8或9分钟后接受这个答案。 – 2010-10-18 02:41:18
@Zachary它怎么样了? – Mizipzor 2010-10-18 09:02:11
@ mizipzor,它工作得很好!对不起,我还没有接受它,忘了昨天晚上。 – 2010-10-18 14:57:20