diff --git a/reference/pdo/pdoexception.xml b/reference/pdo/pdoexception.xml index 487171614..67a5df314 100644 --- a/reference/pdo/pdoexception.xml +++ b/reference/pdo/pdoexception.xml @@ -1,5 +1,5 @@ - + La clase PDOException @@ -51,6 +51,9 @@ &InheritedProperties; + &Methods; + + &InheritedMethods; @@ -75,10 +78,10 @@ code - - Código de error SQLSTATE. Utilice el método - Exception::getCode para acceder a él. - + + Código de error SQLSTATE. + Utilice PDOException::getCode para acceder a él. + @@ -87,6 +90,8 @@ + &reference.pdo.entities.pdoexception; + + + + PDOException::getCode + Obtiene el código de error SQLSTATE + + + + &reftitle.description; + + final public intstringPDOException::getCode + + + + Devuelve el código de la excepción. + Es el método heredado Exception::getCode, + pero, a diferencia de la mayoría de las demás excepciones, el código suele ser un string. + + + + + &reftitle.parameters; + &no.function.parameters; + + + + &reftitle.returnvalues; + + Devuelve el SQLSTATE como un string + de cinco caracteres (por ejemplo "42S02" o + "HY000"), véase PDO::errorCode. + + + Si la conexión falla en PDO::__construct, + devuelve en su lugar el código de error específico del controlador como un int + (por ejemplo 1045 para acceso denegado en MySQL). + + + + El parámetro code de + Exception::__construct solo acepta un + int, por lo que pasarle este valor al relanzar el error como + una excepción diferente lanza un TypeError. + Convertirlo a int hace perder información + ("HY000" se convierte en 0). + En su lugar, pase la excepción original como parámetro + previous. + + + + + + &reftitle.examples; + + Ejemplo de <methodname>PDOException::getCode</methodname> + +query('SELECT * FROM missing_table'); +} catch (PDOException $e) { + var_dump($e->getCode()); +} +?> +]]> + + &example.outputs; + + + + + + Relanzar una <exceptionname>PDOException</exceptionname> + +query('SELECT * FROM missing_table'); + } catch (PDOException $e) { + // Pasar $e->getCode() como código lanzaría un TypeError + throw new DatabaseException('La consulta falló', previous: $e); + } +} catch (DatabaseException $e) { + echo $e->getMessage(), ': ', $e->getPrevious()->getCode(), "\n"; +} +?> +]]> + + &example.outputs; + + + + + + + + &reftitle.seealso; + + Exception::getCode + Exception::getPrevious + PDO::errorCode + PDOStatement::errorCode + PDO::errorInfo + + + +