Kommandoen finally

Blokken finally bruges sammen med konstruktionerne try og catch til håndtering af undtagelser. Koden inde i finally vil blive udført under alle omstændigheder - både ved succesfuld udførelse af try-blokken og ved opståen af en undtagelse.

Syntaks

phptry {
  // Kode, der kan forårsage en undtagelse
} catch (Exception $e) {
  // Håndtering af undtagelse
} finally {
  // Kode, der vil blive udført under alle omstændigheder
}

Eksempel

Eksempel med succesfuld udførelse af kode:

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

Resultat af kodeudførelse:

phpResultat: 5
Dette vil altid udføres

Eksempel

Eksempel med håndtering af undtagelse:

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

Resultat af kodeudførelse:

phpUndtagelse: Division med nul
Dette vil altid udføres

Eksempel

Brug af finally til frigivelse af ressourcer:

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

Resultat af kodeudførelse:

phpFil åbnet succesfuldt
Fil lukket i finally blokken

Se også

  • konstruktionen try,
    som bruges til håndtering af undtagelser
  • klassen Exception,
    som er basisklassen for alle undtagelser