dポイントプレゼントキャンペーン実施中!

PHP5からtry, catchが実装されたのですが、以下の点がわからないです。

他の言語のような、finallyはないのでしょうか?
(正常でも異常でも必ず実行する箇所のことです。)

可能であれば、サンプルを提示していただけるとありがたいです。

ご回答、よろしくお願いします。

A 回答 (3件)

がると申します。


PHP5では、少なくとも現在の5.1.2までの間ではfinallyは無かったかと。
# ちなみにC++もないです。
    • good
    • 0
この回答へのお礼

ありがとうございます。

やはり無いですよね。

教えていただきとても助かりました。

お礼日時:2006/03/30 17:57

参考URLがローカルになってました^^;


訂正
http://www.php.net/manual/ja/language.exceptions …
    • good
    • 0

PHP5の場合


try で例外が発生しても、その後の文は(正常でも異常でも)実行されます。(なのでfinally は構文としては必要ない)
例:
<?php
function div($a, $b) {
try {
if($b==0)
throw new Exception("0での割り算はできません");
$ret=$a/$b; #例外が発生したら実行されない
} catch (Exception $e) {
echo '例外発生', $e->getMessage(), "\n";
}
echo "$a/$b\n"; #異常正常に関係なく実行される
return $ret;
}
$ret=div(10, 3);
print "ret:$ret\n";
$ret=div(10, 0);
print "ret:$ret\n";
?>
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

確かに、そうなのですが
Java言語でのfinallyは、catch内でthrowやreturnした場合でも処理を行ってくれたので
そのようにできたらソースコードが見やすくなるのではないかな。と思ってこの質問をさせていただきました。

お礼日時:2006/03/30 18:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!