सोनारक्यूब: (विशिष्ट अपवाद उपप्रकारों की सूची को पकड़ो)

Nov 23 2020

मेरे पास जेनेरिक अपवादों के बारे में एक प्रश्न है। हम कैसे जानते हैं कि जब आप एक कोशिश करते हैं तो कई गैर-सामान्य अपवाद का उपयोग करते हैं।

उदाहरण के लिए:

  @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) {एक गैर-सामान्य अपवाद की आवश्यकता होगी, लेकिन मुझे यह निर्धारित करने में परेशानी हो रही है कि यह क्या हो सकता है।

जवाब

Jens Nov 23 2020 at 18:50

आपको केवल विशिष्ट छूट को पकड़ना चाहिए जैसे:

catch(org.json.JsonException e)

और बेस क्लास नहीं Exception, जिसका अर्थ है सभी संभावित जाँच और अनियोजित अपवाद