java 基础
以前看java基础,一直不知道自定义异常要用在哪里,当然,不止是自定义异常,还有一些其他的东西就是懂一些理论和写过一些demo,但是不知道用在哪里。
这两天终于看到公司的代码了,虽然只是其中的一个小的,但是还是学到了一些东西。
首先,是自定义异常,根据业务,定义不同的异常。然后然后在定义一个全局拦截器,这个拦截器要放在第一个,
try{ ai.invoke(); }
像这样将整个处理过程包起来,然后在业务中如果验证条件没通过,比如参数传的是null,或者是无效的,格式不正确等,在那个地方就可以直接抛出异常,停止业务处理了。
我之前就是如果条件不正确就是返回一个null或者false,这样写会导致代码中充斥着一堆和业务无关的判断。
当然,有部分条件判断可以写在一个拦截器里面,不通过的话,还是直接抛出异常,这样就不用进到业务处理里面了。
学到的另一个知识就是,在一个模块中,一般业务的处理流程是类似的,紧紧是传的参数不一样,这样完全可以写一个接口
1 public interface PreParamService { 2 3 public void preMap(Map<String, Object> map); 4 5 }
写一个基类,业务处理的核心方法就写在基类中,将这个接口作为方法的参数,子类继承基类,在不同的方法里面接受外面传的参数,将参数写在这个接口中
1 JSONObject cyJson = pointService.doService(new PreParamService() { 2 public void preMap(Map<String, Object> map) { 3 map.put("uid", uid); 4 map.put("desc", desc); 5 map.put("point", point); 6 map.put("tenantId", pointService.getCrmTenantId()); 7 } 8 }, "creditChange");
基类的核心方法中定义一个map,然后将这个map当作参数,调用接口的这个方法,就可以得到传过来的参数了,然后再添加所有方法都会用的共有的参数,最后,写个
方法将map中的方法按照规定的参数格式提取出来,开始业务的执行。
这是看了公司代码后感觉好的用法,当然,我还有更多的东西要学,加油