& lt; className>& lt; variable>美元;php语法


<className> <$variable> syntax in php

这段代码中的$e是什么?什么时候可以使用这种语法?

try {
    $pdo->exec($sql);
    // do more
}
catch (PDOException $e) {
    return $e->getMessage();
}

$e是被捕获的异常。

具体来说,它是一个PDOException,而且只是一个PDOException。

如果在try中抛出任何其他异常,则不会被此块捕获。

PHP手册异常

多个捕获块

try {
    $pdo->exec($sql);
    // do more
}
catch (PDOException $e) {
    // PDO Exceptions
    return $e->getMessage();
}
catch( Exception $e ) {
    // all other exceptions will get caught here.
    return $e->getMessage();
}

自定义异常当你决定抛出自己的异常时,你可以做一件有趣的事情,那就是创建自己的自定义异常类。在PHP手册的注释中有一个很好的方法。
class appException extends CustomException{ }

错误异常

将PHP错误(和警告)转换为异常是很有用的,这样你就可以使用try/catch来处理web应用程序中的所有错误。

set_error_handler( create_function( '$a, $b, $c, $d',
    'throw new ErrorException( $b, 0, $a, $c, $d );
    return false;' ),
E_ALL );