そのため、関数がクラッシュすることがあり(キャッチされない例外)、1秒の遅延で発生したときに2回呼び出し直したいとします。これがコードですが、機能していないようです:
$crashesn = 0;
function checkNum($number) {
echo $number . "<br>";
if ($number>1) {
throw new Exception("Value must be 1 or below");
}
return true;
}
try {
checkNum(2);
echo 'If you see this, the number is 1 or below';
}
catch(Exception $e) {
$crashesn++;
echo "crashes number:".$crashesn."<br>";
if ($crashesn <= 2) {
sleep(1);
checkNum(2);
} else {
echo "MESSAGE: " .$e->getMessage();
}
}
checknumは、例外をスローする関数です(ここでは、例外をスローするたびにクラッシュします)。問題は、このコードを実行しても、ページにエラーメッセージが表示されることです。
Fatal error: Uncaught exception 'Exception' with message 'Value must be 1 or below' in G:\fix\ta_dll\test.php:30 Stack trace: #0 c:\wwwl\test.php(45): checkNum(2) #1 {main} thrown in c:\php\test.php on line 30
「メッセージ:エラーの説明」の代わりに。「クラッシュ番号」の行は、2回ではなく、1回だけ印刷されます。
誰かが私が間違っていることを知っていますか?