在PHP中,要捕獲異常,可以使用try-catch
語句。try
塊包含可能引發異常的代碼,而catch
塊則處理異常。如果在try
塊中的代碼執行過程中發生異常,程序將立即跳轉到相應的catch
塊來處理異常。
以下是一個簡單的示例:
<?php
function divide($dividend, $divisor) {
if ($divisor == 0) {
throw new Exception("Division by zero.");
}
return $dividend / $divisor;
}
try {
echo divide(10, 0);
} catch (Exception $e) {
echo "Caught exception: " . $e->getMessage();
}
?>
在這個例子中,divide
函數在除數為零時會拋出一個異常。在try
塊中調用divide
函數,如果發生異常,將捕獲并處理它。
要將異常記錄到日志文件中,可以使用PHP的內置日志函數error_log()
。以下是一個修改后的示例,將異常信息記錄到名為error.log
的文件中:
<?php
function divide($dividend, $divisor) {
if ($divisor == 0) {
throw new Exception("Division by zero.");
}
return $dividend / $divisor;
}
try {
echo divide(10, 0);
} catch (Exception $e) {
error_log("Caught exception: " . $e->getMessage());
echo "An error occurred. Please check the error log for details.";
}
?>
在這個例子中,當捕獲到異常時,使用error_log()
函數將異常信息記錄到error.log
文件中。同時,向用戶顯示一條友好的錯誤消息。