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");
    }
    }
    }
    }

  • 相关阅读:
    asp.net2.0中App_GlobalResources的使用
    KPI(Key Performance Indicators )
    Dictionary集合
    SQL连接查询1 内联接查询
    如何在Web.config中注册用户控件和自定义控件
    JavaScript中【数据类型】和【数组类型】的区别
    递归求斐波拉数列函数
    SQL连接查询2 外连接(左右联接查询)
    启示
    “帽子戏法”从何而来?
  • 原文地址:https://www.cnblogs.com/maohuidong/p/10728385.html
Copyright © 2011-2022 走看看