Hãy xem xét hai ví dụ nàyTừ khóa `cuối cùng` trong PHP là gì?
<?php
function throw_exception() {
// Arbitrary code here
throw new Exception('Hello, Joe!');
}
function some_code() {
// Arbitrary code here
}
try {
throw_exception();
} catch (Exception $e) {
echo $e->getMessage();
}
some_code();
// More arbitrary code
?>
và
<?php
function throw_exception() {
// Arbitrary code here
throw new Exception('Hello, Joe!');
}
function some_code() {
// Arbitrary code here
}
try {
throw_exception();
} catch (Exception $e) {
echo $e->getMessage();
} finally {
some_code();
}
// More arbitrary code
?>
sự khác biệt là gì? Có một tình huống mà ví dụ đầu tiên sẽ không thực hiện some_code()
, nhưng thứ hai sẽ? Tôi có thiếu điểm hoàn toàn không?
'Mã trong khối finally sẽ luôn được thực hiện sau khi thử và nắm bắt khối, bất kể một ngoại lệ đã được ném ra, và trước khi thực hiện bình thường resumes.' –
Tôi nghĩ rằng đây có liên quan về chủ đề này: http://stackoverflow.com/questions/15031515/can-i-use-try-catch-finally-like-this – JunM
Chỉ để lưu bất kỳ ai khác sao chép-dán từ hướng dẫn sử dụng PHP, tôi đã đọc nhưng không hiểu sự khác biệt giữa hai ví dụ này, nếu không tôi sẽ không hỏi câu hỏi. – marxjohnson