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

  • 相关阅读:
    Leetcode:50. Pow(x, n)
    loj 2759「JOI 2014 Final」飞天鼠
    bzoj 3569 DZY Loves Chinese II
    CF407D Largest Submatrix 3
    bzoj 3837 pa2013 Filary
    bzoj 4722 由乃
    CF1105E Helping Hiasat
    loj 6043「雅礼集训 2017 Day7」蛐蛐国的修墙方案
    luogu P2605 [ZJOI2010]基站选址
    luogu P3226 [HNOI2012]集合选数
  • 原文地址:https://www.cnblogs.com/maohuidong/p/10728385.html
Copyright © 2011-2022 走看看