如果一个函数抛出一个异常但是没有记录,那么如何警告我?

时间:2014-06-25 02:01:56

标签: php doxygen

说我有以下php文件:

<?php

main();

function main() {
  echo shouldNotThrowException();
}

/**
 * Dummy function
 *
 * @param $x
 *   A positive int
 *
 * @return
 *   Returns $x if positive
 *
 * @throws
 *   Exception
 */
function throwsException($x) {
  if ($x < 0) {
    throw Exception(__FUNCTION__ . ': x cannot be negative.');
  }
  return $x;
}

/**
 * Dummy function
 *
 * @return
 *   Returns 4.
 */
function shouldNotThrowException() {
  return throwsException(4);
}

我可以使用Doxygen或其他工具警告我shouldNotThrowException()会抛出异常,但是没有记录吗?

我的理由是,有时在复杂的代码库中,有许多函数,我们有时会忘记在适当的地方捕获异常。例如,Drupal挂钩应该永远不会抛出异常,而是使用drupal_set_message()watchdog()正确记录它们。但是,有些程序员可能会调用Drupal钩子中的函数,这些钩子本身会抛出异常,而不会正确地捕获和显示/记录它们。我希望我的持续集成服务器运行doxygen并警告我这种情况。

1 个答案:

答案 0 :(得分:0)

您可以使用exception handler并捕获这些情况,但脚本执行仍然会中止,因为遇到的异常是没有被捕获的。这是理想的行为。