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

phptry {
  // 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<?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:

phpRezultāts: 5
Šis vienmēr izpildīsies

Piemērs

Piemērs ar izņēmuma apstrādi:

php<?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:

phpIzņēmums: Dalīšana ar nulli
Šis vienmēr izpildīsies

Piemērs

Finally izmantošana resursu atbrīvošanai:

php<?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:

phpFails veiksmīgi atvērts
Fails aizvērts finally blokā

Skatiet arī

  • konstrukciju try,
    ko izmanto izņēmumu apstrādei
  • klasi Exception,
    kurs ir pamatklase visiem izņēmumiem