PHP中如何实现Python的Try: ... Except:?

5 投票
6 回答
2943 浏览
提问于 2025-04-16 05:39

我是一名很厉害的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中异常处理的详细说明。

撰写回答