我的情况很奇怪。
将类实例传递给方法&如果没有设置类实例,服务器会抛出500错误,而不是捕获错误。
这种情况在99%的测试期间发生,但我想确保用户永远不会看到它的1%
顺便说一句:我已经检查了我的.htaccess
和apache2
个文件< =它们是正确的
我需要在我的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
是否确实存在?
答案 0 :(得分:2)
使用set_error_handler
/ set_exception_handler
显示特定于php致命错误的页面。
答案 1 :(得分:0)
在对Fatal Errors
进行一些额外的阅读后,我可以对此进行讨论:How do I catch a PHP Fatal Error
而不是使用set_error_handler
&amp; set_exception_handler
,用于捕获所有错误并处理后使用register_shutdown_functions
。
这将允许您重定向到页面(例如:500.php或其他),记录错误,&amp;如果需要,发送电子邮件。