1
我是新來的PHP,我來自java的背景,我想知道爲什麼php不會直接在try塊中發生異常而沒有手動拋出異常。 例如爲什麼不進入catch塊而沒有拋出異常
<?php
//create function with an exception
function checkNum($number) {
if($number/0) {
throw new Exception("Value must be 1 or below");
}
return true;
}
//trigger exception in a "try" block
try {
checkNum(2);
//If the exception is thrown, this text will not be shown
echo 'If you see this, the number is 1 or below';
}
//catch exception
catch(Exception $e) {
echo 'Message: ' .$e->getMessage();
}
?>
在上面的例子中,如果條件零異常的鴻溝正在發生,然後它會直接進入catch塊,而不是它進入裏面if.why?
PHP的內置錯誤檢查不會引發異常。 – Barmar
但我的問題是,是的,我想抓住它,但我不想執行,如果阻塞,如果異常是我在檢查除法的行,如果我刪除內部的扔,如果然後它不會去抓塊它會執行下一個代碼,在if語句中仍然有例外。 – pravin
它不執行'if()'塊。 '$ number/0'由於除以0而返回'false',所以它不執行'if()'。然後函數返回'true',並打印'如果你看到這個'消息。 – Barmar