Blog webdeveloperski Patryk yarpo Jar

Walidacja danych w klasie wyjątku

Autor wiadomości Grudzień 2, 2010

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 przyjemniejsza niż 4-liniowy if (no można zapisać w 2 liniach)? Według mnie jest. Choć to już jest kwestia gustu.

Komentarze (0) Trackbacks (0)

Brak komentarzy.


Leave a comment

 

Brak trackbacków.