如果在控制器中 不管3721 先写个try catch
class Controller {
try{
$res = UserLogic::add($data);
$res = userLogic::bb();
} catch(\Exception $e){
return $e;
}
}
class UserLogic {
public static add($data){
if(!isset($data['para'])) throw new \Exception('xxxx');
Db::StartTrans();
try{
Db::commit();
} catch(\Exception $e) {
Db::rollBack();'
throw $e; 这里是继续丢出去 个人感觉不是很优雅
}
}
}
我比较困惑的地方是就是 是不是只要程序有不符合自己的地方就丢错误出去 在控制器统一处理 返回数据出去?如果处理这些异常信息会比较好呢?
阿里巴巴 Java 开发手册里有段话:(仅供参考)
用异常做流程控制,是件很爽的事情,因为它看清来更清晰、简单。但是它也有坏处,异常的创建意味着栈信息的收集等一系列有关的操作,这对于正常的业务来说除了拖累性能没有其他作用。
那到底该不该用异常处理业务逻辑呢?个人觉得,这是可取的。正如刚才说的,异常的优势就是清晰、简单,让我们的程序更好看,更容易明白。至于性能之类的,我想应该交给框架、语言去优化。
另外,自己不处理的异常,丢出去很优雅,也很符合原则。为什么你会觉得不好呢……