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

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

  • 相关阅读:
    基本MVVM 和 ICommand用法举例(转)
    WPF C# 命令的运行机制
    628. Maximum Product of Three Numbers
    605. Can Place Flowers
    581. Shortest Unsorted Continuous Subarray
    152. Maximum Product Subarray
    216. Combination Sum III
    448. Find All Numbers Disappeared in an Array
    268. Missing Number
    414. Third Maximum Number
  • 原文地址:https://www.cnblogs.com/luolei/p/4700999.html
Copyright © 2011-2022 走看看