Walidacja danych w klasie wyjątku Drukuj
Ocena użytkowników: / 0
SłabyŚwietny 
Wpisany przez Patryk yarpo Jar   
środa, 28 lipca 2010 13:12

Bardzo często jakiś wyjątek jest rzucany za każdym razem tak samo. Mam na myśli identyczną konstrukcję warunkową. Czy nie lepiej jest wtedy przenieść logiki do klasy wyjątku, skoro tak bardzo jest z nią "zżyta". Oto moje rozwiązanie.

 

Na początek

 

Prosty kod

Zobaczmy kod, który na pewno często można spotkać:

if (null === $a) 
{
    throw new NullException();
}
class NullException extends Exception {}

	

Taki kod najprawdopodobniej znajdzie się w kilku miejscach naszego skryptu. Skoro zawsze NullException jest rzucany po takim warunku, to może warto jest przenieść ten warunek do klasy wyjątku?

 

Klasa wyjątku

class NullException extends Exception {
    const MSG = 'Oczekiwano wartości innej niż null';
    static public function isNull( $data ) {
        if (null === $data) {
            throw new self(self::MSG);
        }
    }
}
$a = null;
NullException::isNull($a);

	

Czy konstrukcja typu

NullException::isNull($a);

nie jest przyjmniejsza niż 4-liniowy if (no można zapisać w 2 liniach)? Według mnie jest. Choć to już jest kwestia gustu.

Zobacz podobne artykuły