gpt4 book ai didi

php - 如何捕获意外错误?

转载 作者:行者123 更新时间:2023-12-02 04:37:48 25 4
gpt4 key购买 nike

我正在编写一个脚本,其中很多事情都可能出错。我正在为明显的事情做 if/else 语句,这可能会发生,但是有没有办法捕获某些事情,这可能会发生,但我还不知道它是什么?

例如,在脚本中间某些事情会导致某种错误。我想通知用户,出了问题,但没有数十个 php 警告脚本。

我需要类似的东西

-- start listening && stop error reporting --

the script

-- end listening --

if(something went wrong)
$alert = 'Oops, something went wrong.';
else
$confirm = 'Everything is fine.'

谢谢。

最佳答案

为什么不尝试...捕捉?

$has_errors = false;    
try {
// code here

} catch (exception $e) {
// handle exception, or save it for later
$has_errors = true;
}

if ($has_errors!==false)
print 'This did not work';

编辑:

这里是 set_error_handler 的示例,它将处理在 try...catch block 上下文之外发生的任何错误。如果 PHP 配置为显示通知,这也将处理通知。

基于以下代码:http://php.net/manual/en/function.set-error-handler.php

set_error_handler('genericErrorHandler');

function genericErrorHandler($errno, $errstr, $errfile, $errline) {
if (!(error_reporting() & $errno)) {
// This error code is not included in error_reporting
return;
}

switch ($errno) {
case E_USER_ERROR:
echo "<b>My ERROR</b> [$errno] $errstr<br />\n";
echo " Fatal error on line $errline in file $errfile";
echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
echo "Aborting...<br />\n";
exit(1);
break;

case E_USER_WARNING:
echo "<b>My WARNING</b> [$errno] $errstr<br />\n";
break;

case E_USER_NOTICE:
echo "<b>My NOTICE</b> [$errno] $errstr<br />\n";
break;

default:
echo "Unknown error type: [$errno] $errstr<br />\n";
break;
}

/* Don't execute PHP internal error handler */
return true;
}
$v = 10 / 0 ;
die('here');

关于php - 如何捕获意外错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4962962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com