<classname>&lt; $ variable&gt; php中的语法

时间:2015-05-27 15:52:31

标签: php mysql pdo

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

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

1 个答案:

答案 0 :(得分:2)

$ e是被抓住的例外。

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

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

Exceptions in the PHP Manual

多个捕获块

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

自定义例外

当您决定抛出自己的异常时,您可以做的一件有趣的事情是创建自己的自定义异常类。一个good approach is found in the PHP Manual comments

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