Ponowne rzucanie wyjątku (re-throwing)

Założenie: Pokażemy jak ponownie rzucić przechwycony wyjątek w PHP po częściowej jego obsłudze.

Krok po kroku:

  1. Tworzymy funkcję, która może rzucić wyjątek:
  2. 
    function dzielenie($a, $b) {
      if ($b == 0) {
        throw new Exception("Dzielenie przez zero!");
      }
      return $a / $b;
    }
    				

    Funkcja dzielenie sprawdza, czy dzielnik jest równy zero. Jeśli tak, rzuca wyjątek Exception.

  3. Próbujemy wykonać dzielenie i przechwytujemy wyjątek:
  4. 
    try {
      $wynik = dzielenie(10, 0);
      echo "Wynik: " . $wynik;
    } catch (Exception $e) {
      echo "Wystąpił błąd: " . $e->getMessage() . "\n";
      //Dodatkowe działania, np. logowanie błędu
      error_log("Błąd dzielenia: " . $e->getMessage());
      //Ponowne rzucenie wyjątku
      throw $e; 
    }
    				

    Blok try...catch próbuje wykonać funkcję dzielenie. Jeśli wystąpi wyjątek, jest on przechwytywany. Dodatkowo logujemy błąd za pomocą funkcji `error_log()`. Następnie, używając `throw $e;` ponownie rzucamy wyjątek, pozwalając na jego obsługę w wyższym poziomie.

  5. Obsługa wyjątku na wyższym poziomie:
  6. 
    try {
        $wynik = dzielenie(10,0);
        echo "Wynik: " . $wynik;
    } catch (Exception $e) {
        echo "Błąd krytyczny: " . $e->getMessage();
    }
    				

    Tutaj pokazujemy jak obsłużyć wyjątek ponownie rzucony na wyższym poziomie. To pozwala na centralne zarządzanie krytycznymi błędami.

Ten przykład pokazuje podstawy ponownego rzucania wyjątków w PHP. Pozwala to na elastyczne i hierarchiczne zarządzanie błędami w aplikacji.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *