thinkphp:try-catch捕获异常
使用简单的例子,实现了一个简单的try-catch捕获异常的实例
//开始事务
Db::startTrans();try{
//有异常抛出异常
if(存在错误){
throw new \Exception("异常信息");
}
// 提交事务
Db::commit();
// 返回成功信息
...}
catch (\Exception $e) {//捕获到错误
// 回滚事务
Db::rollback();
// 返回错误信息
...
}
public function test(){
//开始事务
Db::startTrans();
try{
// 执行正常的操作,例如插入数据到数据库
$data = [
'item1' => 'str1',
'item2' => 'str2',
];
$insert = db::table('tablename')->insert($data);
//判断数据是否插入成功,如果失败抛出异常
if (!$insert) {
throw new \Exception("插入 tablename 表失败");
}
// 提交事务
Db::commit();
// 返回成功信息
return json([
'check' => 1,
'msg' => '数据插入成功',
]);
}catch (\Exception $e) {//捕获到错误
// 回滚事务
Db::rollback();
// 返回错误信息
return json([
'check' => 0,
'msg' => '数据插入失败: ' . $e->getMessage()
]);
}
}