在一个pgm中包含多个php文件并捕获错误
我在不同的时间为每个cronjob调用一个php pgm。 pgm包含许多php文件。 每个文件从合作伙伴处发送或获取数据 我如何处理其中的错误包括pgm 当时,包含的pgm中的一个ftp连接失败,因此整个脚本崩溃。在一个pgm中包含多个php文件并捕获错误,php,ftp,include,pgm,Php,Ftp,Include,Pgm,我在不同的时间为每个cronjob调用一个php pgm。 pgm包含许多php文件。 每个文件从合作伙伴处发送或获取数据 我如何处理其中的错误包括pgm 当时,包含的pgm中的一个ftp连接失败,因此整个脚本崩溃。 如何处理这个问题?您应该将可能崩溃的代码包装到try/catch结构中。这将抛出exeption,但脚本将继续工作。更多。需要更多地了解您的代码,以便给您明确的答案 一般来说,php错误是不可捕获的,除非您定义自己的错误处理程序,从中抛出异常。使用下面的代码可以捕获大多数运行时错误
如何处理这个问题?您应该将可能崩溃的代码包装到
try/catch
结构中。这将抛出exeption,但脚本将继续工作。更多。需要更多地了解您的代码,以便给您明确的答案
一般来说,php错误是不可捕获的,除非您定义自己的错误处理程序,从中抛出异常。使用下面的代码可以捕获大多数运行时错误(只要它们不被认为是致命的)
顺便说一句,您还可以定义自己的异常处理程序,以便在未捕获异常时使用完整堆栈跟踪显示触发的错误
注意!我不建议您在不进行严格测试的情况下将此代码添加到生产网站,以确保一切仍按预期工作
编辑:
我不知道您的代码是什么样子的,但我想您可以这样做:
require 'error-handler.php'; // where you have your error handler (the code seen above)
$files_to_include = array(
'some-file.php',
'some-other-file.php',
...
);
foreach($files_to_include as $file) {
try {
include $file;
}
catch(Exception $e) {
echo "$file failed\nMessage: ".$e->getMessage()."\nTrace:\n".$e->getTraceAsString();
}
}
对于pgm(Program?),您可以使用try-catch块进行错误处理,这是什么意思:本机php函数会再次抛出异常。所以用try/catch块包装代码很少有帮助。每个文件打开一个ftp连接并从合作伙伴加载数据。如果合作伙伴在没有通知我的情况下更改ftp连接设置,整个脚本将崩溃,并出现登录错误。
require 'error-handler.php'; // where you have your error handler (the code seen above)
$files_to_include = array(
'some-file.php',
'some-other-file.php',
...
);
foreach($files_to_include as $file) {
try {
include $file;
}
catch(Exception $e) {
echo "$file failed\nMessage: ".$e->getMessage()."\nTrace:\n".$e->getTraceAsString();
}
}