自定义错误处理程序的问题
问题描述:
请参阅我以前的帖子here。我做了相应的更改,但出现错误。 请帮我弄清楚这段代码中的错误。我的IDE(集锦)是给这个代码的多行红色下划线:自定义错误处理程序的问题
<?php
/* Include dependency */
require_once("./Config/dbconfig.php");
abstract class dbconnection
{
var $conn;
try
{
//Opens connection for a MySQL DB
public function OpenConnection()
{
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
or die (throw new DB_Exception_Handler('Cannot connect to DB: ' . $thisException->getMessage() . '.'));
mysql_select_db(DB_NAME) or
die (throw new DB_Exception_Handler('Cannot connect to DB: ' . $thisException->getMessage() . '.'));
}
//Closes connection for a MySQL DB
public function CloseConnection()
{
mysql_close($conn);
}
}
catch(DB_Exception_Handler($thisException)
{
$thisException->ShowError();
}
}
class DB_Exception_Handler extends Exception
{
public function ShowError()
{
echo "<script>alert('". $this->getMessage() ."');</script>";
}
}
?>
答
事情,我注意到在类内,但没有一个方法中一个try catch块。 并在期望字符串或int(die())的函数调用中引发新的异常。
如果使用@符号表示抑制错误消息,则两个数据库函数都会在失败时返回false。
此外,您正在调用一个函数对引用$ thisException不存在当前作用域看起来。但这可能是因为不是你所有的代码都在这里。
<?php
/* Include dependency */
require_once("./Config/dbconfig.php");
abstract class dbconnection {
var $conn;
//Opens connection for a MySQL DB
public function OpenConnection() {
$conn = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$conn) {
throw new DB_Exception_Handler('Cannot connect to DB: ' . mysql_error() . '.');
}
if(mysql_select_db(DB_NAME) == false) {
throw new DB_Exception_Handler('Cannot connect to DB: ' . mysql_error() . '.');
}
}
//Closes connection for a MySQL DB
public function CloseConnection()
{
mysql_close($conn);
}
}
class DB_Exception_Handler extends Exception
{
public function ShowError()
{
echo "<script>alert('". $this->getMessage() ."');</script>";
}
}
?>