Ben son zamanlarda İstisnalar ile çalışıyoruz. Büyük ölçüde sadece İstisna günlüğüne bakarak kaynağındaki olası sorunlara dikkat çekmek için geliştiriciler yardımcı olur çünkü o yakalanmamış İstisnalar oturum mantıklı düşünüyorum. Bir istisna ile dağıtılır Ancak, artık bunu açmak için bir ihtiyaç var mı? Evet, bir ölçüde. Sadece İstisnalar böcek "away" gitmek yapacak alıcı tarafından daha sonra, hata kod yazmaya "kötü" geliştiriciler varsa. Örneğin:
try
{
fopen('/path/to/file','w');
}
catch (Exception $e)
{
// Display an error to user
}
Yukarıdaki kod PHP. Noktası kodu bu tür, imo, yok etmelisiniz. İstisnalar müstesna olmak ve nadiren meydana geliyordu, ama bu kod ile nadiren daha fazla meydana vardır. Örneğin, dosya varsa geliştirici kontrol etmez ve o yazma izinleri varsa o kontrol etmez. Bunun yerine, bu olmalıdır:
try
{
if (file_exists('/path/to/file') && is_writable('/path/to/file'))
fopen('/path/to/file','w');
else
// Display an error to user about file not existing or not being writable
}
catch (Exception $e)
{
// Display an error to user about an unexpected error
}
Bu şimdi hemen hemen mantıklı. Istisna (örneğin sunucu çökmesi, elektrik kesintisi, ne olursa olsun) atılan ve olağanüstü yalnızca yakalandı. Geliştirici şeyi ve atlar kontroller için İstisnalar kullandığı Ama ne - beni yakaladı istisnalar giriş için bir yol var?
Ben sorunları "çözmek" için try-catch blokları her şeyi koymak geliştiriciler istemiyorum. Vb donanım hatası, sunucu çökmesi gibi olağanüstü durumlar için istisnalar bırakın - Ben onlara açıkça onlar kontrol ne olursa olsun, kontrol etmek istiyorum