什么是PHP等价于Python的Try:。。。除了:

2024-05-12 12:30:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个很强的Python程序员,但当谈到PHP时,我并不十分擅长。我需要尝试一些东西,如果不成功的话,做点别的。在


这就是Python中的样子:

try:
      print "stuf"
except:
      print "something else"

在PHP中这是什么?在


Tags: elsesomething程序员phpprinttryexcept样子
3条回答
try {

    // do stuff ...

} catch (Exception $e) {

    print($e->getMessage());

}

http://php.net/manual/en/language.exceptions.php

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();
}

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

相关问题 更多 >