在一个pgm中包含多个php文件并捕获错误

在一个pgm中包含多个php文件并捕获错误,php,ftp,include,pgm,Php,Ftp,Include,Pgm,我在不同的时间为每个cronjob调用一个php pgm。 pgm包含许多php文件。 每个文件从合作伙伴处发送或获取数据 我如何处理其中的错误包括pgm 当时,包含的pgm中的一个ftp连接失败,因此整个脚本崩溃。 如何处理这个问题?您应该将可能崩溃的代码包装到try/catch结构中。这将抛出exeption,但脚本将继续工作。更多。需要更多地了解您的代码,以便给您明确的答案 一般来说,php错误是不可捕获的,除非您定义自己的错误处理程序,从中抛出异常。使用下面的代码可以捕获大多数运行时错误

我在不同的时间为每个cronjob调用一个php pgm。 pgm包含许多php文件。 每个文件从合作伙伴处发送或获取数据

我如何处理其中的错误包括pgm

当时,包含的pgm中的一个ftp连接失败,因此整个脚本崩溃。
如何处理这个问题?

您应该将可能崩溃的代码包装到
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();
  }
}