PHP
PHP KOULUTUSTA VUONNA 2025!
-
PHP koulutus
-
WordPress PHP-devaajalle koulutus
-
MySQL koulutus
-
Apache HTTPd koulutus
-
Microsoft IIS koulutus
Kurssit saatavilla kautta Suomen. Tule ja varaa oma koulutustapahtumasi heti! Koulutuksen järjestää asiantuntijasi Koulutus- ja konsultointipalvelu KK Mediat.
Virheenkäsittely PHP:ssä – try-catch-finally ja throw
PHP tarjoaa useita keinoja virheiden käsittelyyn. Virheenkäsittelyrakenteet try-catch-finally
sekä throw
ovat keskeisimmät.
Näiden rakenteiden avulla voit estää komentosarjan kaatumisen ja käsitellä virheitä tehokkaammin.
try...catch...finally-rakenne
try-catch-finally mahdollistaa virheiden havaitsemisen ja käsittelemisen ilman, että koko skripti kaatuu. Rakenteen syntaksi on selkeä ja yksinkertainen:
try {
// Koodilohko, jossa voi esiintyä virheitä
}
catch (Exception $e) {
// Virheen käsittelylohko
}
finally {
// Looginen lohko, joka suoritetaan aina
}
Esimerkiksi:
try {
$arvo = 10 / 0; // Tämä aiheuttaa virheen (jakaminen nollalla)
}
catch (Exception $e) {
echo 'Virhe: ' . $e->getMessage(); // Virheen viesti
}
finally {
echo "Tämä lohko suoritetaan aina, riippumatta virheestä.";
}
Aivan kaikkia virhetilanteita tällä rakenteella ei voi kumminkaan käsitellä. PHP:ssä virheitä on useita tyyppejä: huomautuksia (notices), varoituksia (warnings) ja poikkeuksia (exceptions). Try-catch-finally rakenne soveltuu vain kun PHP lähettää virheestä nk. Exception-tyylisen virheilmoituksen. PHP:n dokumentaatio sisältää tiedon minkä tyyppisen virheen eri rakenteet ja funktiot palauttavat.
throw-komento
PHP:n throw-komento luo Exception-tyylisen virheen, joka voidaan käsitellä try-catch-rakenteen avulla. Komennon syntaksi on hyvin yksinkertainen:
throw new Exception("Virheen kuvaus");
Esimerkiksi:
function tarkistaSyote($syote) {
if ($syote < 1) {
throw new Exception("Syötteen täytyy olla suurempi kuin nolla.");
}
return $syote;
}
try {
echo tarkistaSyote(0); // Tässä heitetään virhe
}
catch (Exception $e) {
echo 'Virhe: ' . $e->getMessage(); // Virhe käsitellään täällä
}