0

我有一个奇怪的情况。

当一个类实例被传递给一个方法并且该类实例尚未设置时,服务器会抛出一个 500 错误,而不是捕获该错误。

这发生在 99% 的测试期间,但我想确保用户在这 1% 的时间内永远不会看到它

顺便说一句:我已经检查了我的.htaccessapache2文件 <= 它们是正确的

我需要在我的php.ini文件中更改什么或类似的内容以避免500每次发生这种错误时出现错误?

这是一些示例代码:

<?php

function querysomething ($connection_to_mysql, $query) {
  try {
    $query = $connection_to_mysql->prepare("SELECT * FROM table WHERE name=?");
    $query->bind_param("s", $name);
    $execute = $query->execute();
    //etc...
    if (!$execute) {
      throw new Exception ("some error");
    }
  } catch (Exception $e) {
    //some error handling
  }
}

?>

如果$connection_to_mysql对象没有实例化,服务器会抛出500错误

我是否需要在$connection_to_mysql每次查询之前检查是否确实存在?

4

2 回答 2

2

使用set_error_handler/set_exception_handler显示特定于 php 致命错误的页面。

于 2012-08-08T16:52:18.173 回答
0

在对捕获进行了一些额外的阅读之后Fatal Errors,我可以理解这一点:如何捕获 PHP 致命错误

而不是使用set_error_handler&set_exception_handler来捕获所有错误并处理后记使用register_shutdown_functions.

这将允许您重定向到一个页面(例如:500.php 或其他),记录错误,并在需要时发送电子邮件。

于 2012-08-08T16:59:54.330 回答