Käsk finally

Plokki finally kasutatakse koos konstruktsioonidega try ja catch erindite töötlemiseks. Kood finally plokis käivitatakse igal juhul - nii try-ploki edukal täitmisel kui ka erindi tekkimisel.

Süntaks

phptry {
  // Kood, mis võib põhjustada erindi
} catch (Exception $e) {
  // Erindi töötlemine
} finally {
  // Kood, mis käivitatakse igal juhul
}

Näide

Näide koodi edukal täitmisel:

php<?php
try {
  $res = 10 / 2;
  echo "Tulemus: " . $res . "\n";
} catch (Exception $e) {
  echo "Erind: " . $e->getMessage() . "\n";
} finally {
  echo "See käivitatakse alati\n";
}
?>

Koodi täitmise tulemus:

phpTulemus: 5
See käivitatakse alati

Näide

Näide erindi töötlemisega:

php<?php
try {
  $res = 10 / 0;
  echo "Tulemus: " . $res . "\n";
} catch (Exception $e) {
  echo "Erind: " . $e->getMessage() . "\n";
} finally {
  echo "See käivitatakse alati\n";
}
?>

Koodi täitmise tulemus:

phpErind: Jagamine nulliga
See käivitatakse alati

Näide

Finally kasutamine ressursside vabastamiseks:

php<?php
$file = fopen("example.txt", "r");
try {
  // Töö failiga
  if ($file) {
    echo "Fail avati edukalt\n";
  }
} catch (Exception $e) {
  echo "Erind: " . $e->getMessage() . "\n";
} finally {
  if ($file) {
    fclose($file);
    echo "Fail suletud finally plokis\n";
  }
}
?>

Koodi täitmise tulemus:

phpFail avati edukalt
Fail suletud finally plokis

Vaata ka

  • konstruktsiooni try,
    mida kasutatakse erindite töötlemiseks
  • klassi Exception,
    mis on baasklass kõikidele erinditele