zoukankan      html  css  js  c++  java
  • 反射抛出异常,如何确定异常类型

    参考代码:

    private String invokeMethod(ForeignService foreignService, Map<String, Object> paramMap) throws Exception {
    Object resultObj = null;
    try {
    Object bean = SpringUtil.getBean(foreignService.getHandlerService());
    Class beanClass = bean.getClass();
    Method method = beanClass.getMethod(foreignService.getHandlerMethod(),ForeignService.class, Map.class);
    if (Assert.checkParam(paramMap)) {
    resultObj = method.invoke(bean, foreignService,paramMap);
    }
    } catch (Exception e) {
    LOG.error("调用外部接口反射异常,foreignServiceId={}", foreignService.getId());
    throw e;
    }
    return (String)resultObj;
    }

    外部调用以上方法时, try catch 需要这样写:

    } catch (Exception ex) {
    ex.printStackTrace();
    resultLevel = RuleLevelEnum.ERROR.getStatus();
    LOG.error("xxx:{}", ex.getMessage());
    resultDetailMap.put("errMsg", "xxx");
    if(ex instanceof InvocationTargetException) {
    InvocationTargetException targetEx = (InvocationTargetException)ex;
    Throwable t = targetEx .getTargetException();
    if(t instanceof BussinessException) {
    // xxx
    resultLevel = RuleLevelEnum.WARNING.getStatus();
    BussinessException bussinessEx = (BussinessException)t;
    if (bussinessEx.getErrCode() == BussinessExceptionEnum.INTERFACE_TIMEOUT.getCode()) {
    interfaceExceptionFlag = Boolean.TRUE;
    resultDetailMap.put("errMsg", "xxx");
    }
    if (bussinessEx.getErrCode() == BussinessExceptionEnum.INTERFACE_EXCEPTION.getCode()) {
    interfaceExceptionFlag = Boolean.TRUE;
    resultDetailMap.put("errMsg", "xxx");
    }
    }
    }
    }

  • 相关阅读:
    android的一些类库的优缺点
    中文后乱码问题的解决方法(可能解决)
    android data recovery and nc
    最短路径——Floyd,Dijkstra(王道)
    还是畅通工程——最小生成树(王道)
    More is better——并查集求最大集合(王道)
    畅通工程——并查集(王道)
    IDEA默认VIM模式
    命令行杀死进程
    进制转换——高精度整数(王道)
  • 原文地址:https://www.cnblogs.com/maohuidong/p/10728385.html
Copyright © 2011-2022 走看看