php: try-catch não captura todas as exceções

Eu estou tentando fazer o seguinte:

try {
    // just an example
    $time      = 'wrong datatype';
    $timestamp = date("Y-m-d H:i:s", $time);
} catch (Exception $e) {
    return false;
}
// database activity here

Resumindo: inicializo algumas variáveis ​​para serem colocadas no banco de dados. Se a inicialização falhar por qualquer motivo - por ex. porque $ time não é o formato esperado - eu quero que o método retorne false e não insira dados errados no banco de dados.

No entanto, erros como esse não são capturados pela instrução 'catch', mas pelo manipulador de erros global. E então o script continua.

Existe uma maneira de contornar isso? Eu só pensei que seria mais limpo fazer isso assim, em vez de digitar manualmente cada variável, o que parece ineficaz, considerando que em 99% de todos os casos nada de ruim acontece.

questionAnswers(4)

yourAnswerToTheQuestion