Özel durum işleyicisi içinde tetik hatası

2 Cevap php

Ben zaten özel PHP hata işleyicisi olması göz önüne alındığında, böyle bir "forwarder" gibi bir istisna işleyicisi tanımlamak için mantıklıdır:

function exception_handler(Exception $e) {
    trigger_error($e->getMessage(), E_USER_ERROR);
}
set_exception_handler('exception_handler');

Fikir aynı kodu tekrarlamaktan kaçınmak için, çok özel işlemek için mevcut hata işleyicisi kullanmaktır. Bazı sorunlara neden bir istisna işleyicisi içinde bir hata tetikleme mu?

2 Cevap

Hiç onunla bir sorunum yok. Ben istisnalar yanı sıra hataları ile aynı kurulumu, benim hata işleyicisi e-postaları bana var.

İşte benim istisna işleyicisi, ben yakalanmamış istisna var hata koymak. Bu şekilde ben bir istisna değil, bir hata neden olduğunu biliyoruz. Ayrıca nedeniyle get_class bana da istisna anlatacağım.

function exception_handler(Exception $e) {
  trigger_error('Uncaught ' . get_class($e) . ', code: ' . $e->getCode() . "<br/>\n Message: " . htmlentities($e->getMessage()), E_USER_WARNING);
}

Benim hata işleyicisi bir HTML e-posta gönderir beri durum işleyici html var. Bunu kaldırmak isteyebilirsiniz.

Ben önce hataları ve PHP kodu karışık durumlar gördüm. Teknik olarak herhangi bir sorun neden olmamalıdır da, büyük olasılıkla kodu muhafaza geliştiriciler için karışıklık yaratacaktır. Eğer zamanınız varsa, bunun yerine özel durumlar kullanmak için tüm trigger_error kod üstlenmeden düşünün. Tabii ki PHP'nin kendisi yaratıyor herhangi trigger_error malzeme ile sıkışmış ama umarım bu durumların en önleyebilirsiniz.