Komanda finally
Bloks finally tiek lietots kopā ar konstrukcijām try un catch izņēmumu apstrādei. Kods finally blokā tiks izpildīts jebkurā gadījumā - gan veiksmīgas try bloka izpildes laikā, gan izņēmuma gadījumā.
Sintakse
try {
// Kods, kas var izraisīt izņēmumu
} catch (Exception $e) {
// Izņēmuma apstrāde
} finally {
// Kods, kas tiks izpildīts jebkurā gadījumā
}
Piemērs
Piemērs ar veiksmīgu koda izpildi:
<?php
try {
$res = 10 / 2;
echo "Rezultāts: " . $res . "\n";
} catch (Exception $e) {
echo "Izņēmums: " . $e->getMessage() . "\n";
} finally {
echo "Šis vienmēr izpildīsies\n";
}
?>
Koda izpildes rezultāts:
Rezultāts: 5
Šis vienmēr izpildīsies
Piemērs
Piemērs ar izņēmuma apstrādi:
<?php
try {
$res = 10 / 0;
echo "Rezultāts: " . $res . "\n";
} catch (Exception $e) {
echo "Izņēmums: " . $e->getMessage() . "\n";
} finally {
echo "Šis vienmēr izpildīsies\n";
}
?>
Koda izpildes rezultāts:
Izņēmums: Dalīšana ar nulli
Šis vienmēr izpildīsies
Piemērs
Finally izmantošana resursu atbrīvošanai:
<?php
$file = fopen("example.txt", "r");
try {
// Darbs ar failu
if ($file) {
echo "Fails veiksmīgi atvērts\n";
}
} catch (Exception $e) {
echo "Izņēmums: " . $e->getMessage() . "\n";
} finally {
if ($file) {
fclose($file);
echo "Fails aizvērts finally blokā\n";
}
}
?>
Koda izpildes rezultāts:
Fails veiksmīgi atvērts
Fails aizvērts finally blokā