Proste pytanie, ale nie może znaleźć odpowiedzi.PHP Spróbuj złapać całą klasę
Jeśli mam klasę php, czy można zarejestrować obsługę wyjątków dla całej klasy?
Powodem, dla którego chcę to zrobić, jest to, że moja klasa używa obiektów, które są częścią mojego modelu domeny. Metody tego obiektu rzucają bardzo wyraźne wyjątki. Nie chcę, aby te wyjątki powodowały bańki w wyższych klasach, ale zamiast tego chcą przechwytywać wszystkie te wyjątki i generować je jako bardziej ogólny wyjątek, np. DomainLayerException
Chciałbym zatem, aby jeden obszar w mojej klasie przechwycił dowolną liczbę list wyjątków, które definiuję z mojego modelu domeny, i zgłasza je jako bardziej ogólny wyjątek, np.
Obecnie sposób, w jaki to robię, polega na zawijaniu wywołań metod do obiektów domeny w bloku catch catch. To staje się bardzo niechlujne, ponieważ używam coraz więcej obiektów domenowych i ich metod. Byłoby świetnie, aby usunąć te, próbować łapać bloki i obsłużyć je wszystkie w jednym miejscu w klasie, tj. Jeśli wyjątek zostanie rzucony w klasie, jest przechwytywany przez pojedynczą procedurę obsługi zdarzenia zdefiniowaną w klasie
dzięki za odpowiedź. Problem z tym jest set_exception_handler jest metodą globalną. Może skończyć się całym światem problemów, jeśli wiele klas ustawia się jako globalny handler –
@Gaz_Edge absolutnie nie jest dobrym pomysłem, aby go użyć w ten sposób. Lepiej mieć metodę proxy opisaną przez Jacka. –