sonarqube:(而是捕获特定异常子类型的列表)

rsaldnfx  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(513)

我有一个关于一般例外的问题。当您尝试执行多个操作时,我们如何知道要使用哪个非泛型异常。
例如:

@PostConstruct
    protected void init() {
        try {
            HttpSession session = request.getSession();
            String policyInfo = (String) session.getAttribute("policyInfo");
            if(session.getAttribute("faxNumber") != null) {
                faxNumber = (String) session.getAttribute("faxNumber");
            }
            policyNumber = (String) session.getAttribute("policyNumber");
            JSONObject policyInfoObj = new JSONObject(policyInfo);
            JSONArray policiesArr = policyInfoObj.getJSONArray("policies");
            if (policiesArr.length() > 0) {
                JSONObject policyObj = policiesArr.getJSONObject(0);
                JSONArray insuredVehicle = policyObj.getJSONArray("insuredVehicle");
                checkInsuredVechile(insuredVehicle);
                termStartDate = policyObj.getString("effectiveDate");
                JSONArray addressArray = policyObj.getJSONArray("address");
                policySource = policyObj.getString("policySource");
                checkAddressArry(addressArray);

            }

            policyNumber = policyNumber.substring(0,5)+"-"+policyNumber.substring(5,7)+"-"+policyNumber.substring(7);

            response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
        }catch(Exception  e) {
            logger.error("Exception in getting policy details",e);
        }
    }

所以对于 catch(Exception e) { 它将需要一个非通用的异常,但我很难确定它可以是什么。

fkaflof6

fkaflof61#

您应该只捕获特定的例外,例如:

catch(org.json.JsonException e)

而不是基类 Exception ,这意味着所有可能的已检查和未检查异常

相关问题