这段代码中的$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 );