CakeFest 2024: The Official CakePHP Conference

SQLite3::enableExceptions

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

SQLite3::enableExceptions Habilita o lançamento de exceções

Descrição

public SQLite3::enableExceptions(bool $enable = false): bool

Controla se a instância SQLite3 lançará exceções ou avisos em caso de erro.

Parâmetros

enable

Quando true, a instância SQLite3, e as instâncias SQLite3Stmt e SQLite3Result derivadas dela, lançarão exceções em caso de erro.

Quando false, a instância SQLite3, e as instâncias SQLite3Stmt e SQLite3Result derivadas dela, emitirão avisos em caso de erro.

Em qualquer modo, o código de erro e a mensagem, se houver, estarão disponíveis através de SQLite3::lastErrorCode() e SQLite3::lastErrorMsg(), respectivamente.

Valor Retornado

Retorna o valor antigo; true se as exceções estavam habilitadas, false caso contrário.

Registro de Alterações

Versão Descrição
8.3.0 Chamar SQLite3::enableExceptions() com enable como false irá disparar um aviso E_DEPRECATED.

Exemplos

Exemplo #1 Exemplo de SQLite3::enableExceptions()

<?php
$sqlite
= new SQLite3(':memory:');
try {
$sqlite->exec('create table foo');
$sqlite->enableExceptions(true);
$sqlite->exec('create table bar');
} catch (
Exception $e) {
echo
'Caught exception: ' . $e->getMessage();
}
?>

O exemplo acima produzirá algo semelhante a:

Warning: SQLite3::exec(): near "foo": syntax error in example.php on line 4
Caught exception: near "bar": syntax error
add a note

User Contributed Notes 1 note

up
15
Yoann
5 years ago
Be sure to note the poorly chosen name and default value.

The following snippet does not throw an exception, despite calling a function with the name "enableExceptions" immediately prior to the bad query.
<?php
$sqlite
= new SQLite3('test.tmp');
$sqlite->enableExceptions();
$sqlite->exec('invalid query');
echo
'code still running since no exception was thrown';
?>

Note that this is still error-prone if the passed value is false. One is likely to read "enableExceptions" and ignore the parameter list since the function name conveys a strong (but incorrect) meaning.
To Top