[英]Exception handling in this PHP?
如何處理PHP中的異常? 例如,在如下代碼中:
<?php
$a=5;
$b=0
$c=($a/$b);
echo $c;
?>
請幫我。
PHP不會通過引發異常來引發警告和錯誤消息,因此您無法在此處捕獲任何內容。 但是,您可以修改此行為:
// Register a custom error handler that throws an ErrorException
// whenever a warrning or error occurs
set_error_handler(function ($errno, $errstr, $errfile, $errline ) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
});
$a = 5;
$b = 0;
// Now a division by zero will result into an ErrorException being thrown
try {
$c = $a / $b;
echo $c;
} catch (ErrorException $e) {
echo 'Error: ' . $e->getMessage();
}
據我所知,PHP不會在被零除時拋出異常。 我測試了5.3,它會觸發警告,所有較小的版本也會觸發警告。 因此,將其放在try塊中不會做任何事情。 您可以使用ErrorException類將PHP錯誤映射到Exceptions,並通過錯誤和異常處理程序解決一些問題。 請參閱https://github.com/sam-at-github/php_error_exceptions以獲取有關該錯誤的參考實現。
首先:您正在對第二行代碼進行除法(可以除以零)。
第二:由於拋出錯誤,因此無需在方法中返回false。
第三:為什么在這里使用異常,而不僅僅是讓您的方法返回true到false並在執行分區之前對其進行檢查。
第四:如果只需要檢查$ y的值,為什么要有一個方法。 調用該方法或包含if語句僅需要一行代碼。
所以,為什么不能這樣:
case '/':
if($b > 0)
$prod = $a / $b;
break;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.