Problem jest następujący:
Kod dla użytkownika musi zawierać "ładną" obsługę błędów, co powoduje, że kluczowe operacje bazodanowe, komunikacyjne itd, są ujęte w blokach try/catch. Fajnie. Ale takie ich ujęcie powoduje, że jak już jakiś błąd wystąpi, developer nie ma łatwego życia - pierwsze, co na ogół musi zrobić, to zakomentować try/catch, żeby zobaczyć prawdziwe źródło błędu w stacku zapisanym w logu.
W związku z tym pytanie - czy ktoś zna jakiś wygodny sposób nadania blokowi try/catch cech warunkowości?
Mam na myśli coś w rodzaju (pseudokod):
tryIf ( DEBUG_FLAG === false ) {
$this->zupa();
} catch (\Exception $e) {
echo $e->getMessage();
} finally {
$this->kupa();
}
Wynik działania takiej konstrukcji powinien być dokładnie takie sam jak standardowego bloku try/catch, jeśli stała DEBUG_FLAG ma wartość false, lecz jeśli stała ta ma wartości true, to wykonane zostałyby wywołane funkcje:
$this->zupa();
oraz
$this->kupa();
natomiast cała logika obsługi ewentualnego błędu zostałaby pominięta.
Szukałem jakichś publikacji, które poruszałyby podobne zagadnienie, lecz nie udało mi się takowych znaleźć. Ktoś, coś...?
Pozdrawiam,
Ziggi