PHP中如何实现Python的Try: ... Except:?
我是一名很厉害的Python程序员,但在PHP方面还不够熟练。我需要尝试一些东西,如果不行的话,就换个方法。
这在Python中是这样的:
try:
print "stuf"
except:
print "something else"
那在PHP中会是什么样子呢?
6 个回答
1
PHP不像Python那样自带错误捕捉功能,除非你自己去修改默认设置,设置一个错误处理器。PHP的try
- catch
功能是在5版本中才加入的,而且它只能捕捉你自己明确throw
出来的异常。
简单来说,PHP把错误和异常区分开来。错误没有像Python那样被模块化,也没有提供给用户使用。我觉得这和PHP的起源有关,PHP最开始是一堆动态网页脚本,随着时间的发展才逐渐增加了更多功能,最近才开始提供更好的面向对象编程(OOP)支持(也就是5版本);而Python从一开始就基本上支持面向对象编程和其他一些高级功能。异常处理也是从一开始就有的。
下面是一个使用示例(记得要有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();
}
7
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。
5
try {
// do stuff ...
} catch (Exception $e) {
print($e->getMessage());
}
查看这个链接:http://php.net/manual/en/language.exceptions.php,这里有关于PHP中异常处理的详细说明。