簡體   English   中英

PHP嘗試和捕獲例外

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM