我是PHP开发的初学者,现在我正在关注一个教程,但我与本教程中的错误处理实现感到有些困惑。
我正在进行注册过程,这是将新用户注册到数据库
的功能function registerUser($username,$password,$email,$fullname) {
$query = "INSERT INTO users SET username=?, password=?,email=?,fullname=?";
$statement = $this->conn->prepare($query);
if (!$statement) {
throw new Exception($statement->error);
}
$statement-> bind_param('ssss',$username,$password,$email,$fullname);
$returnValue = $statement -> execute();
return $returnValue;
}
实现此registerUser
功能
// making connection
$file = parse_ini_file("../../../host.ini");
$dbhost = trim($file["host"]);
$dbusername = trim($file["username"]);
$dbpassword = trim($file["password"]);
$dbname = trim($file["dbname"]);
$access = new access($dbhost,$dbusername,$dbpassword,$dbname);
$access->connect();
// Inserting user to database
$result = $access->registerUser($username,$securedPassword,$email,$fullname);
if ($result) {
$user = $access->selectUser($username);
$resultArray = [
"status" => "200",
"message" => "Sucessfully registered",
"id" => $user["id"],
"username" => $user["username"],
"email" => $user["email"],
"avatar" => $user["avatar"],
"fullname" => $user["fullname"]
];
} else{
$resultArray = [
"status" => "400",
"message" => "can't insert data to database "
];
}
$access->disconnect();
echo json_encode($resultArray);
我不明白何时使用throw new Exception($statement->error);
。因为发生错误时没有回声。为什么我必须在registerUser
函数中添加此代码
据我所知,如果我想提出异常,它应该以这种格式
try {
} catch {
}
我应该更改以尝试获取格式吗?或者可以在这样的语句中使用异常吗?
预先感谢:)
您对尝试捕获块是正确的,但是,只有在您想捕获错误并特别处理它时使用它们(在大多数情况下,显示出更有信息的错误信息)。不执行此操作(就像您在代码中显示的方式)脚本将由Apache的顶级错误汉德勒终止。
简而