Salve,
ho scritto un pezzettino di codice in PHP all'interno di un blocco try catch.

codice:
$esito = new Esito();
$esito->setStatus("OK");

try {
    
    $mail       = Mail::factory("mail");
    $headers  = array("From"=>"miamail@gmail.com", "Subject"=>"Test Mail");
    $body 	   = "This is a test!";
    $mail->send("miamail@gmail.com", $headers, null);

} catch (Exception $e) {
    $esito->setStatus("KO");
    return $esito;
}

return $esito;

Ho testato il pezzo di codice, ma non capisco perché non fa mai ciò che ho indicato nella catch.
Se per esempio scrivo, $mail = Mail::factory("pippo"); dovrebbe sollevare un'eccezione, invece mi viene stampato un warning.
Devo disabilitare qualcosa nel file php.ini ?