caglar_kocak Kaldığı yerden devam etmez genel de oradan elde edeceğin verileri try da alırsın finally de devam ettirirsin diye düşünüyorum
php try catch bloğu hata yakalandıktan sonra devam etmek mümkün mü ?
bu olayı bir fonksiyona devretsem ve finally de tekrar o fonksiyonu çağırsam herhalde olur demi ?
caglar_kocak
anladığım kadarıyla yapmak istediğin işlemde try catch kullanman gereksiz gibi
acTiv dögü içerisinde sırayla kişilere mail gönderiyorum. Mail herhangi bir sebepten gitmez ise oluşan hatayı catch içerisinde yakalayıp log kayıtlarına gönderiyorum ve mailin neden gidemediğini görüyorum. try catch kullanmadan nasıl yapabilirim ?
caglar_kocak try catch kullanmadan foreach ile mail gönderdiğin fonksiyonu çalıştır ve o fonksiyon içerisinde kontrol et ne yöntem kullanıyorsun mail gönderirken mutlaka sonuç olarak bir dönüş alabiliyor olman gerek if ile dene
$mail->email = "asd@mail.com"
$mail->send();
if( !$mail->isSuccess() )
{
Log::error($mail->email . " : Mail gönderilemedi!")
}
yani olabilir gibi
foreach (/*...*/) {
//...
try {
//...
} catch (\Exception $e) {
// hata olursa loglayın mesela
Log::error('Hata: '.$e->getMessage());
continue; // döngüyü devam ettir
}
//...
}
acTiv
bir json yapı kurdum. Henüz gönderilmesi denenmemiş mailler 2 , gönderilenler 1 ve gönderilemeyenler 0 , catch e düşerse tekrar fonksiyonu çağırıyorum. Şimdilik istediğim şey olmuş oldu. Tabi çok az bir maliyet getirdi. fazladan bir update işlemi yapıyorum.
Aslında ilk olarak sizin dediğiniz gibi yapmaya çalıştım ancak mail gitmezse evet bir şey dönüyor. Ancak giderse boş dönüyor. Boş dönmesinden rahatsız oldum.
BoraN7 continue; ilk denediğim şey olmuştu ancak sonuç vermedi maalesef.
caglar_kocak Benim bunu kullandığım projem var ve çalışıyor.
Başka bir yerde hatanız vardır.
- En İyi Yanıtcaglar_kocak tarafından
try {
//...
} catch (Throwable $e) {
// burada throw $e yapmazsanız ya da burada yaptığınız işlem
// döngüyü kıracak bir işlem yapmazsa, hata vermezse
// döngü tamamlanıncaya kadar devam eder.
}
mgsmus Hocam süpersin ya. Saygılar... Net işe yaradı. Çok teşekkür ederim.
BoraN7 galiba siz de haklısınız. Bir hata buldum.