Tworzenie własnego wyjątku
Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 56 z 68.
Chociaż wbudowana w PHP klasa Exception dobrze sprawdza się w ogólnej obsłudze błędów, utworzenie własnych niestandardowych klas wyjątków pozwala uzyskać znacznie bardziej szczegółowe i znaczące komunikaty o błędach. Niestandardowe wyjątki pomagają odróżniać różne rodzaje problemów w kodzie i odpowiednio je obsługiwać.
Aby utworzyć własny wyjątek, rozszerzasz bazową klasę Exception języka PHP za pomocą słowa kluczowego extends. Dzięki temu dziedziczeniu Twój własny wyjątek zyskuje całą funkcjonalność standardowego wyjątku, a jednocześnie możesz dodać własne, specyficzne zachowanie lub po prostu nadać mu bardziej opisową nazwę.
<?php
class InvalidEmailException extends Exception {
// Klasa może być pusta – dziedziczy wszystko po Exception
}
// Możesz też dodać własne właściwości lub metody
class CustomException extends Exception {
public function getCustomMessage() {
return "Custom error: " . $this->getMessage();
}
}
?>Siła niestandardowych wyjątków tkwi w ich opisowych nazwach i możliwości przechwytywania konkretnych typów wyjątków. Zamiast przechwytywać ogólny wyjątek Exception, możesz przechwytywać InvalidEmailException, DatabaseConnectionException lub dowolny inny niestandardowy wyjątek, który utworzysz. Dzięki temu obsługa błędów jest bardziej precyzyjna, a kod łatwiejszy w utrzymaniu.
Wyzwanie
ŁatwyOtrzymasz jedno wejście: ciąg znaków reprezentujący nazwę klasy wyjątku. Będzie to pojedyncze słowo, którego należy użyć jako nazwy własnej klasy wyjątku (na przykład: NegativeBalanceException lub InvalidUsernameException).
Odczytaj wejście i utwórz własną klasę wyjątku, używając podanej nazwy. Twoja własna klasa wyjątku powinna rozszerzać bazową klasę Exception języka PHP. Po utworzeniu klasy wypisz "Custom exception created: ", a następnie nazwę klasy otrzymaną na wejściu.
Format wejścia: Jeden wiersz zawierający ciąg znaków reprezentujący nazwę klasy wyjątku (na przykład: InvalidAgeException)
Oczekiwane wyjście: Custom exception created: , a następnie nazwa klasy wyjątku
Spróbuj swoich sił
<?php
// Odczytaj nazwę klasy wyjątku
$className = trim(fgets(STDIN));
// TODO: Napisz poniżej kod tworzący niestandardową klasę wyjątku
// Wyświetl wynik
echo "Custom exception created: " . $className;
?>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane funkcje
Funkcje anonimoweDomknięcia i „use”Funkcje strzałkoweFunkcje zwrotneUżywanie „call_user_func”Funkcje zmiennePrzekazywanie przez referencjęFunkcje rekurencyjnePowtórka: przegląd funkcji4Tablice wielowymiarowe
Tworzenie tablicy 2DDostęp do elementów tablicy 2DModyfikowanie elementów tablicy 2DIterowanie z użyciem zagnieżdżonych pętliAsocjacyjne tablice 2DPodsumowanie: ćwiczenie z prostą siatką2Zaawansowane operacje na tablicach
Dodawanie za pomocą 'array_push'Usuwanie za pomocą 'array_pop'Dodawanie za pomocą 'array_unshift'Usuwanie za pomocą 'array_shift'Łączenie tablic indeksowanychŁączenie tablic asocjacyjnychWyodrębnianie za pomocą 'array_slice'Wyszukiwanie wartości za pomocą 'in_array'Wyszukiwanie kluczy za pomocą 'array_search'Podsumowanie: ćwiczenie z playlistą5Dziennik ocen uczniów
Konfiguracja projektu: struktura danychDodawanie nowego uczniaDodawanie oceny uczniowiObliczanie średniej uczniaWyszukiwanie ucznia z najwyższą ocenąGenerowanie świadectwa8Obsługa błędów i wyjątków
Poznawanie błędów PHPBlok „try...catch”Blok „finally”Zgłaszanie wyjątkuTworzenie własnego wyjątkuKorzystanie z własnego wyjątkuPodsumowanie: walidacja danych wejściowych3Sortowanie tablic
Sortowanie tablic indeksowanych rosnącoSortowanie tablic indeksowanych malejącoSortowanie tablic asocjacyjnych według wartościSortowanie tablic asocjacyjnych według kluczaSortowanie w kolejności naturalnejSortowanie niestandardowe za pomocą 'usort'Podsumowanie: sortowanie tabeli wynikówPoćwicz samodzielnie: Kompilator PHP online