Η εντολή finally
Το μπλοκ finally χρησιμοποιείται μαζί με τις δομές try και catch για την επεξεργασία εξαιρέσεων. Ο κώδικας μέσα στο finally θα εκτελεστεί σε κάθε περίπτωση - τόσο κατά την επιτυχή εκτέλεση του try-μπλοκ, όσο και κατά την εμφάνιση εξαίρεσης.
Σύνταξη
try {
// Κώδικας που μπορεί να προκαλέσει εξαίρεση
} catch (Exception $e) {
// Επεξεργασία εξαίρεσης
} finally {
// Κώδικας που θα εκτελεστεί σε κάθε περίπτωση
}
Παράδειγμα
Παράδειγμα με επιτυχή εκτέλεση κώδικα:
<?php
try {
$res = 10 / 2;
echo "Result: " . $res . "\n";
} catch (Exception $e) {
echo "Exception: " . $e->getMessage() . "\n";
} finally {
echo "This will always execute\n";
}
?>
Αποτέλεσμα εκτέλεσης κώδικα:
Result: 5
This will always execute
Παράδειγμα
Παράδειγμα με επεξεργασία εξαίρεσης:
<?php
try {
$res = 10 / 0;
echo "Result: " . $res . "\n";
} catch (Exception $e) {
echo "Exception: " . $e->getMessage() . "\n";
} finally {
echo "This will always execute\n";
}
?>
Αποτέλεσμα εκτέλεσης κώδικα:
Exception: Division by zero
This will always execute
Παράδειγμα
Χρήση finally για απελευθέρωση πόρων:
<?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";
}
}
?>
Αποτέλεσμα εκτέλεσης κώδικα:
File opened successfully
File closed in finally block