I try to catch exceptions in Cakephp v3.0, but it doesn't seems to work :
try{
$email = new Email('default');
$email->from([Configure::read('email') => Configure::read('emailName')])
->to(Configure::read('email'))
->bcc($to)
->subject(__('XXXX') . ' : ' . __('XXXX'))
->template('fail', 'default')
->emailFormat('html')
->send();
} catch (Exception $ex) {
}
It doesn't catch the exception :
Could not send email: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() Cake\Network\Exception\SocketException
Pretty annoying, I'm using it to catch fail email send on a local server.
Thanks a lot.
Adding the answer here, just to bring dow the unanswered questions stats down:
You need to use \Exception
or a more specific, namespaced, exception name
try {
// code
} catch (\Exception $e) {
// error
}
You could try using try
- catch
try {
$email = new Email('default');
$email->from([Configure::read('email') => Configure::read('emailName')])
->to(Configure::read('email'))
->bcc($to)
->subject(__('XXXX') . ' : ' . __('XXXX'))
->template('fail', 'default')
->emailFormat('html')
->send();
} catch (\PDOException $e) {
$error = $e->getMessage();
}
I had a similar issue when I tried to catch MissingConnectionException
.
In my case, following lines solved my problem.
use Cake\Core\Exception\Exception;
...
try {
// Your test code here
} catch (Exception $e) {
...
}
Hope it would be help for you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With