Príkaz finally

Blok finally sa používa spolu s konštrukciami try a catch na spracovanie výnimiek. Kód inside finally sa vykoná v každom prípade - tak pri úspešnom vykonaní try-bloku, ako aj pri vzniku výnimky.

Syntax

phptry {
  // Kód, ktorý môže spôsobiť výnimku
} catch (Exception $e) {
  // Spracovanie výnimky
} finally {
  // Kód, ktorý sa vykoná v každom prípade
}

Príklad

Príklad s úspešným vykonaním kódu:

php<?php
try {
  $res = 10 / 2;
  echo "Result: " . $res . "\n";
} catch (Exception $e) {
  echo "Exception: " . $e->getMessage() . "\n";
} finally {
  echo "This will always execute\n";
}
?>

Výsledok vykonania kódu:

phpResult: 5
This will always execute

Príklad

Príklad so spracovaním výnimky:

php<?php
try {
  $res = 10 / 0;
  echo "Result: " . $res . "\n";
} catch (Exception $e) {
  echo "Exception: " . $e->getMessage() . "\n";
} finally {
  echo "This will always execute\n";
}
?>

Výsledok vykonania kódu:

phpException: Division by zero
This will always execute

Príklad

Použitie finally na uvoľnenie zdrojov:

php<?php
$file = fopen("example.txt", "r");
try {
  // Práca so súborom
  if ($file) {
    echo "File opened successfully\n";
  }
} catch (Exception $e) {
  echo "Exception: " . $e->getMessage() . "\n";
} finally {
  if ($file) {
    fclose($file);
    echo "File closed in finally block\n";
  }
}
?>

Výsledok vykonania kódu:

phpFile opened successfully
File closed in finally block

Pozri tiež

  • konštrukciu try,
    ktorá sa používa na spracovanie výnimiek
  • triedu Exception,
    ktorá je základnou triedou pre všetky výnimky