PHP 中 finally 和 return 的互動
導言
當 try 塊或 catch 塊(或兩者)包含一個 return 語句時,finally 塊會呈現出一種特殊的行為。通常,return 語句會使程式控制權返回到呼叫位置。但是,對於帶有 try/catch 塊且帶 return 的函式,finally 塊中的語句會在返回前先執行。
示例
在以下示例中,div() 函式有一個 try - catch - finally 結構。沒有異常的 try 塊會返回除法運算結果。在異常情況下,catch 塊會返回錯誤訊息。但是,在這兩種情況下,finally 塊中的語句都會先執行。
示例
<?php
function div($x, $y){
try {
if ($y==0)
throw new Exception("Division by 0");
else
$res=$x/$y;;
return $res;
}
catch (Exception $e){
return $e->getMessage();
}
finally{
echo "This block is always executed
";
}
}
$x=10;
$y=0;
echo div($x,$y);
?>輸出
會顯示以下輸出
This block is always executed Division by 0
將 $y 的值變為 5。 會顯示以下輸出
This block is always executed 2
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP