A finally parancs

A finally blokkot a try és catch szerkezetekkel együtt használjuk a kivételek kezelésére. A finally-en belüli kód minden esetben végrehajtódik - akár a try-blokk sikeres végrehajtásakor, akár kivétel keletkezése esetén.

Szintaxis

phptry {
  // Kód, amely kivételt válthat ki
} catch (Exception $e) {
  // A kivétel kezelése
} finally {
  // Kód, amely minden esetben végrehajtódik
}

Példa

Példa a kód sikeres végrehajtásával:

php<?php
try {
  $res = 10 / 2;
  echo "Eredmény: " . $res . "\n";
} catch (Exception $e) {
  echo "Kivétel: " . $e->getMessage() . "\n";
} finally {
  echo "Ez mindig végrehajtódik\n";
}
?>

A kód végrehajtásának eredménye:

phpEredmény: 5
Ez mindig végrehajtódik

Példa

Példa kivétel kezelésével:

php<?php
try {
  $res = 10 / 0;
  echo "Eredmény: " . $res . "\n";
} catch (Exception $e) {
  echo "Kivétel: " . $e->getMessage() . "\n";
} finally {
  echo "Ez mindig végrehajtódik\n";
}
?>

A kód végrehajtásának eredménye:

phpKivétel: Division by zero
Ez mindig végrehajtódik

Példa

A finally használata erőforrások felszabadításához:

php<?php
$file = fopen("example.txt", "r");
try {
  // Munka a fájllal
  if ($file) {
    echo "A fájl sikeresen megnyílt\n";
  }
} catch (Exception $e) {
  echo "Kivétel: " . $e->getMessage() . "\n";
} finally {
  if ($file) {
    fclose($file);
    echo "A fájl bezárásra került a finally blokkban\n";
  }
}
?>

A kód végrehajtásának eredménye:

phpA fájl sikeresen megnyílt
A fájl bezárásra került a finally blokkban

Lásd még

  • a try szerkezetet,
    amely a kivételek kezelésére szolgál
  • a Exception osztályt,
    amely az összes kivétel alaposztálya