在开发业务系统中,我们目前绝大多数采用MVC模式,但是往往有人把service跟controller紧紧的耦合在一起,甚至直接使用Threadlocal来隐式传值,并且复杂的逻辑几乎只能使用service...在ccontroller 调用userService的checkUserExist()方法
在controller直接书写业务逻辑
在service响应一个状态码机制,比如1 2 3表示错误信息,0 表示没有任何错误...接下来有2种选择:
在controller 使用try-catch进行处理
直接把异常抛给上层框架统一处理
第1种方式是不可取的 ,注意我们抛出的ServiceException,它仅仅逻辑处理异常,并且我们的方法前面没有声明...我们可以为每一种检查项定义一个异常吗?...和service可不是原子性的,不然为什么要区分这么多层呢
如果那么在乎效率,考虑下重写Throwable的fillStackTrace方法.你要知道异常的开销大到底大在什么地方,fillStackTrace