Giới thiệu
Mã trong cuối cùng khối sẽ luôn được thực thi cho dù có một ngoại lệ trong khối ry hay không. Khối này xuất hiện sau khối catch hoặc thay vì khối catch.
bắt và cuối cùng chặn
Trong ví dụ sau, cả khối catch và khối cuối cùng đều được đưa ra. Nếu quá trình thực thi xảy ra trong khối try, mã trong cả hai đều được thực thi. Nếu không có ngoại lệ, chỉ khối cuối cùng được thực thi.
Ví dụ
<?php function div($x, $y) { if (!$y) { throw new Exception('Division by zero.'); } return $x/$y; } try { echo div(10,0) . "\n"; } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; } finally{ echo "This block is always executed\n"; } // Continue execution echo "Execution continues\n"; ?>
Đầu ra
Kết quả sau được hiển thị
Caught exception: Division by zero. This block is always executed Execution continues
thay đổi câu lệnh trong khối try để không có ngoại lệ nào xảy ra
Ví dụ
<?php function div($x, $y) { if (!$y) { throw new Exception('Division by zero.'); } return $x/$y; } try { echo div(10,5) . "\n"; } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; } finally{ echo "This block is always executed\n"; } // Continue execution echo "Execution continues\n"; ?>
Đầu ra
Kết quả sau được hiển thị
2 This block is always executed Execution continues
cuối cùng chỉ chặn
Ví dụ sau có hai khối thử. Một trong số họ chỉ có khối cuối cùng. Khối thử của nó gọi hàm div sẽ ném ra một ngoại lệ
Ví dụ
<?php function div($x, $y){ try{ if (!$y) { throw new Exception('Division by zero.'); } return $x/$y; } catch (Exception $e) { echo 'Caught exception: ', $e->getMessage(), "\n"; } } try { echo div(10,0) . "\n"; } finally{ echo "This block is always executed\n"; } // Continue execution echo "Execution continues\n"; ?>
Đầu ra
Kết quả sau được hiển thị
Caught exception: Division by zero. This block is always executed Execution continues