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中的方法按照规定的参数格式提取出来,开始业务的执行。

  这是看了公司代码后感觉好的用法,当然,我还有更多的东西要学,加油

原文地址:https://www.cnblogs.com/luolei/p/4700999.html