[英]PHP Try and Catch Exception
使用以下代碼,我試圖計算-0.25,-0.333,-0.5,-1,拋出異常,然后繼續計數1,0.5,0.333,0.25。
到目前為止,我得到了例外,然后我無法弄清楚如何繼續計數。
function inverse($x)
{
if (!$x) {
throw new Exception('Division by zero.');
}
else return 1/$x;
}
try {
for ($i=-4; $i<=4; $i++) {
echo inverse($i) . "\n<br>";
}
}
catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n<br>";
}
// Continue execution
echo 'Hello World';
?>
我嘗試添加echo inverse(-$i) . "\\n<br>";
echo inverse(-$i) . "\\n<br>";
進入TRY部分,沒有成功。 它繼續計數,但沒有捕獲異常。
有什么建議么?
謝謝!
你的catch在for循環之外,所以一旦捕獲到異常,for循環就會結束。
嘗試
for ($i=-4; $i<=4; $i++) {
try {
echo inverse($i) . "\n<br>";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n<br>";
}
}
代替。
把try|catch
放在循環中:
for ($i=-4; $i<=4; $i++) {
try {
echo inverse($i) . "\n<br>";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n<br>";
}
}
或者只是改變你的代碼:
function inverse($x)
{
if (!$x) {
return 'Division by zero.';
}
else return 1/$x;
}
try {
for ($i=-4; $i<=4; $i++) {
echo inverse($i) . "\n<br>";
}
}
catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n<br>";
}
// Continue execution
echo 'Hello World';
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.