Η εντολή finally

Το μπλοκ finally χρησιμοποιείται μαζί με τις δομές try και catch για την επεξεργασία εξαιρέσεων. Ο κώδικας μέσα στο finally θα εκτελεστεί σε κάθε περίπτωση - τόσο κατά την επιτυχή εκτέλεση του try-μπλοκ, όσο και κατά την εμφάνιση εξαίρεσης.

Σύνταξη

phptry {
  // Κώδικας που μπορεί να προκαλέσει εξαίρεση
} catch (Exception $e) {
  // Επεξεργασία εξαίρεσης
} finally {
  // Κώδικας που θα εκτελεστεί σε κάθε περίπτωση
}

Παράδειγμα

Παράδειγμα με επιτυχή εκτέλεση κώδικα:

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";
}
?>

Αποτέλεσμα εκτέλεσης κώδικα:

phpResult: 5
This will always execute

Παράδειγμα

Παράδειγμα με επεξεργασία εξαίρεσης:

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";
}
?>

Αποτέλεσμα εκτέλεσης κώδικα:

phpException: Division by zero
This will always execute

Παράδειγμα

Χρήση finally για απελευθέρωση πόρων:

php<?php
$file = fopen("example.txt", "r");
try {
  // Εργασία με αρχείο
  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";
  }
}
?>

Αποτέλεσμα εκτέλεσης κώδικα:

phpFile opened successfully
File closed in finally block

Δείτε επίσης

  • τη δομή try,
    που χρησιμοποιείται για την επεξεργασία εξαιρέσεων
  • την κλάση Exception,
    που είναι η βασική κλάση για όλες τις εξαιρέσεις