Birçok try ... catch blokları kaçınarak

4 Cevap

Ben bir sınıfta çeşitli işlevleri vardır. Her fonksiyonun ben denemek ... yakalamak kullanın. Bu basitleştirmek için herhangi bir yolu var mı? Ben bir hata sınıfı yapmak istiyorum ve bu benim projeden herhangi bir dosyanın erişilebilir olmalıdır. Ben doğrusu otomatik Hata sınıfına yönelik olmalıdır, her bir fonksiyonun yakalamak .. denemek kullanmak istemiyorum.

4 Cevap

Ben işlevinin kendisi ama fonksiyon denir sayfasında try catch eklemeyin.

örneğin:

    try
{
	$faq_title = mysqli_real_escape_string($link, $_POST['faq_title']);
	$faq_subtitle = mysqli_real_escape_string($link, $_POST['faq_subtitle']);
	$desc = mysqli_real_escape_string($link, $_POST['desc']);
	$faq_e = new Shopadmin();
	$faq_e->add_faq($faq_title, $faq_subtitle, $desc);
	$feedback = "<div class='succes'>FAQ added succesfully!</div>";
}
catch(Exception $e)
{
	$feedback = "<div class='error'>";
	$feedback .= $e->getMessage();
	$feedback .= "</div>";
}

Ben yakalayan ve ben ana konteyner div echo $ geribildirim içine saklanan olacak yeni bir istisna değilse, sorgu, başarıyla ya da değil yapıldığını ve eğer benim işlevi ben kontrol edin.

Her fonksiyonu try catch eklemek zorunda withouth farklı fonksiyonlar için arayabilirsiniz bu şekilde

Ben bu size yardımcı olur umarım

Eğer istisnalar yanlış şekilde kullanarak gibi bu sesler. İstisnalar genel yakalanmış olması atılmamalı, ya da en azından sık sık yakalanmış edilmemelidir. Daha ayrıntılı olarak başka questions ve / veya answers açıklayan istisna kullanım bakmak isteyebilirsiniz.

Küresel bir istisna alıcı kaydettirin. Bu fonksiyon, herhangi uncatched istisna çekecektir. Eğer site genelinde çalışır, böylece her sayfada yer alan bazı dosyasında olduğunu register_session, yaptığımız gibi bunu yapmalıyım.

Bkz: http://php.net/manual/en/function.set-exception-handler.php

Ama sen (siz hatayı işlemek ve devam edemez) gibi bir istisna kurtarmak unutmayınız.

Onlar daha büyük olsun temelde bu bir gereklilik neredeyse tüm projeler olduğunu. Çözüm Hata işleme modülü oluşturmaktır. Sen sıfırdan oluşturmak veya ELMAH gibi zaten var olan müthiş modülleri kullanabilirsiniz.