Kommandoen finally

Blokken finally brukes sammen med konstruksjonene try og catch for å håndtere unntak. Koden inni finally vil kjøre uansett - både ved vellykket utførelse av try-blokken og ved oppståelse av et unntak.

Syntaks

phptry {
  // Kode som kan forårsake et unntak
} catch (Exception $e) {
  // Håndtering av unntak
} finally {
  // Kode som vil utføres uansett
}

Eksempel

Eksempel med vellykket kjøring av kode:

php<?php
try {
  $res = 10 / 2;
  echo "Resultat: " . $res . "\n";
} catch (Exception $e) {
  echo "Unntak: " . $e->getMessage() . "\n";
} finally {
  echo "Dette vil alltid kjøre\n";
}
?>

Resultat av kjøring:

phpResultat: 5
Dette vil alltid kjøre

Eksempel

Eksempel med håndtering av unntak:

php<?php
try {
  $res = 10 / 0;
  echo "Resultat: " . $res . "\n";
} catch (Exception $e) {
  echo "Unntak: " . $e->getMessage() . "\n";
} finally {
  echo "Dette vil alltid kjøre\n";
}
?>

Resultat av kjøring:

phpUnntak: Divisjon med null
Dette vil alltid kjøre

Eksempel

Bruke finally for å frigjøre ressurser:

php<?php
$file = fopen("example.txt", "r");
try {
  // Arbeid med filen
  if ($file) {
    echo "Fil åpnet vellykket\n";
  }
} catch (Exception $e) {
  echo "Unntak: " . $e->getMessage() . "\n";
} finally {
  if ($file) {
    fclose($file);
    echo "Fil lukket i finally-blokken\n";
  }
}
?>

Resultat av kjøring:

phpFil åpnet vellykket
Fil lukket i finally-blokken

Se også

  • konstruksjonen try,
    som brukes for å håndtere unntak
  • klassen Exception,
    som er basisklassen for alle unntak