कई तकनीकी जवाब है कि JLS धारा 1.2, जांचे हुए अपवादों आदि जो इसका इस्तेमाल बताते हैं किया गया है।
लेकिन आपके सवाल का
मैं जब घोषणा करनी चाहिए एक अपवाद फेंकता है, और जब नहीं है, और इसके बारे में सिर्फ घोषित बिना फेंक?
अपने कोड कुछ स्पष्ट अपवाद पैदा करने और उसे फेंकने रहा है, तो आप हमेशा समारोह जिसके लिए प्रलेखन टैग उत्पन्न होगा ऊपर जोड़ना चाहिए खंड फेंकता है और आप प्रलेखन उत्पन्न करनी चाहिए सिर्फ लिख कर/** आप। इससे आपकी अन्य लाइब्रेरी या फ़ंक्शंस का उपयोग करने वाले अन्य सभी उपयोगकर्ताओं की सहायता मिलेगी, कुछ फ़ंक्शन या कन्स्ट्रक्टर अपवाद फेंकने के लिए बाध्य हैं यदि कुछ अमान्य तर्क या कुछ मान इस फ़ंक्शन के कॉल से पहले प्रारंभ नहीं किए गए हैं।
उदाहरण,
/**
*
* @param filePath File path for the file which is to be read
* @throws FileNotFoundException In case there exists no file at specified location
* @throws IllegalArgumentException In case when supplied string is null or whitespace
*/
public static void ReadFile(String filePath) throws FileNotFoundException, IllegalArgumentException
{
if(filePath == null || filePath == "")
throw new IllegalArgumentException(" Invalid arguments are supplied ");
File fil = new File(filePath);
if(!fil.exists()|| fil.isDirectory())
throw new FileNotFoundException(" No file exist at specified location " + filePath);
//..... Rest of code to read file and perform necessay operation
}
इन प्रलेखन टैग और फेंकता प्रोग्रामर जीवन आसान जो अपने कोड पुन: उपयोग करेगा और अगर समारोह के साथ शुरू हो जाती है पहले से पता होगा कि IllegalArgumentException, FileNotFoundException फेंक दिया जाएगा बनाने के लिए इसके अलावा रहे हैं गलत पैरामीटर या फ़ाइल निर्दिष्ट स्थान पर उपलब्ध नहीं है।
तो यदि आप चाहते हैं कि आपका कोड और कार्य स्वयं व्याख्यात्मक हैं और सभी आवश्यक मामलों को प्रदान करते हैं तो को कौन से अपवाद फेंक दिए जाते हैं अन्यथा यह आपकी पसंद है।
याद रखें, अगर आप 3012 दिनों के बाद का उपयोग कर रहे हैं (मुझे यकीन है कि आप इसे भविष्य में फिर से उपयोग करने जा रहे हैं) उन फ़ंक्शंस तो यह अधिक उपयोगी होगा और आपको केवल उन खंडों के बारे में पता चलेगा जो मैं उस समारोह में किया था।