जावा में एन्क्रिप्शन \ डिक्रिप्शन को संभालने पर यह बहुत ही बुनियादी, कोड का टुकड़ा काफी आम है।क्रिप्टो अपवादों को संभालना
final Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, key, iv);
cipher.doFinal(*something*);
अकेले इन तीन लाइनों, संभावित छह अपवाद फेंक और मुझे यकीन है कि क्या साफ (कोड पठनीयता के संदर्भ में) जिस तरह से उन्हें संभाल करने के लिए नहीं कर रहा हूँ। छह कैच क्लॉज के साथ प्रयास करें वास्तव में मुझे एक गंध की तरह दिखता है।
क्या ऐसी वस्तुओं के साथ काम करते समय, मैं माइक्रोप्रेटर्न या सर्वोत्तम प्रथाओं को स्पष्ट रूप से याद कर रहा हूं?
संपादित
क्षमा करें, मुझे लगता है कि मैं अपने आप को बहुत अच्छी तरह से नहीं समझा था। मेरा सवाल वास्तव में प्रयास \ पकड़ खंड से बचने के बारे में नहीं है, लेकिन यदि समान स्थितियों को संभालने का एक आम तरीका है।
अपवाद हैं
NoSuchPaddingException, NoSuchAlgorithmException
InvalidAlgorithmParameterException, InvalidKeyException,
BadPaddingException, IllegalBlockSizeException
छः पकड़ने वाले खंडों के साथ प्रयास कोड गंध हो सकता है, लेकिन यह गलत भी नहीं हो सकता है। कोड के इस ब्लॉक से छह अपवाद फेंक सकते हैं? क्या हर कोई इंगित करेगा कि एक अलग मुद्दा हुआ? – Freiheit
एक गैर-विभेदित पकड़ बिल्कुल गंध है। अच्छा प्रश्न +1 –
मैं एक उत्तर दूंगा, लेकिन क्या आप इस प्रश्न में अपवादों को सूचीबद्ध कर सकते हैं? –