g网java业务是什么业务?
业务逻辑就是处理数据的逻辑啦。一般后台代码也分三层action(controller)serviceDAO(这里的三层不是MVC)比如我得到用户名但是在存入数据库的时候用户名字段应该是前台的用户名加上当前日期拼成的字符串action或者controller层是第一层一般是用来及接受数据并且做数据的非空啊格式是否正确的验证如用户名是否为空是不是安全字符串之类的service层一般是用来做一个业务逻辑的实现这时候userName=userName+newDate();DAO层就是与数据库交互层啦也就是读写数据库将逻辑层得到的新的userName插入到数据库
java异常从业务层集中抛出,是不是每个控制层方法都要trycatch?
控制层中发生的异常有两种情况:
一种是意料之内的,可预估的。这种异常需要捕获异常后做出“尝试修复”,例如在查询用户信息rpc的过程中发生异常,包括什么500啊,404啊,这些对于客户端来说基本不用重试,可以通过清晰的错误码告知,相反,超时等情况则可以通知客户端稍后重试,通过不同的错误码引导客户端进行不同的操作。
另一种情况则是控制层本身就没考虑到的情况。这种情况盲目的try/catch没多大意义,通常会在框架层面做统一处理,包括记录异常信息,以及优雅的返回失败。
最后,对于try/catch的使用,我们不是并不是为了看不见异常,更多的是考虑我捕获后能做什么,能否尝试解决这个问题,如果不行,抛给上层,能否记录并告警,如果没考虑清楚这个问题,很容易犯一个大忌(吞掉异常)。
首先,,业务层,如果可控的要抛出。当然一定不要处理成错误的返回。也不是说一定要处理,看具体的处理场景,因为涉及到事物的问题,业务层还有一个重要的处理场景。那就是事务处理。如果你直接返回你的错误返回,那就是事务无效,正确的做法是。定义一个异常,再可控的异常try catch 抛出自定义异常,定义全局的异常处理器,利用异常处理器对自定义的错误返回系统标准返回?对于不可控的,可以在加上异常处理器。打注解实现http状态吗的返回
还没有评论,来说两句吧...