फ़ाइलों को पढ़ने के लिए Scanner
का उपयोग (या अन्य प्रकार के इनपुट) मध्य/बड़े पैमाने पर स्थितियों में बेहद अक्षम हो सकता है। यदि आपके पास हजारों या लाखों लाइनों को पढ़ने की प्रदर्शन संबंधी चिंताएं हैं, तो मैं दृढ़ता से अनुशंसा करता हूं कि आप BufferedReader कक्षा का उपयोग करें। System.in
से लाइनों को पढ़ने के लिए BufferedReader के उपयोग का एक उदाहरण नीचे प्रदर्शित होता है:
public static void main(String[] args) throws Exception {
String line = null;
BufferedReader br = new BufferedReader (new InputStreamReader(System.in));
try {
/* This is protected code. If an problem occurs here, catch block is triggered */
while ((line = br.readLine()) != null){
System.out.println(line);
}
}
catch (IOException e){
throw new IOException("Problem reading a line",e);
}
}
IOException try/catch
ब्लॉक इसलिए शुरू किया जा सकता में इस्तेमाल किया जाना चाहिए, जब भी इस तरह के एक त्रुटि के रूप में एक "असाधारण" व्यवहार के try
ग्रस्त अंदर संरक्षित कोड । जावा की अपनी अपवाद है जो समान स्थिति होने पर डूब जाती है। उदाहरण के लिए, ArrayIndexOutOfBoundsException
तब फेंक दिया जाता है जब आप आकार a
आकार n
परिभाषित करते हैं और आप अपने कोड में a[n+1]
स्थिति को एक्सेस करने का प्रयास करते हैं। ArrayIndexOutOfBoundsException
के रूप में, कई अन्य अपवाद वर्ग हैं जिन्हें आप अपने संदेशों के साथ फेंक और अनुकूलित कर सकते हैं। अपवाद के लिए उपयुक्त कोड को ब्लॉक ब्लॉक में संरक्षित क्षेत्र में रखा जाना चाहिए। जब उस ब्लॉक में अपवाद होता है, तो अपवाद को इसके साथ कैच ब्लॉक में संभाला जाएगा।
देखो कि आपको त्रुटि स्थिति की उम्मीद करने और प्रत्येक मामले के लिए अपवाद फेंकने के लिए if/else
कथन बनाने की आवश्यकता नहीं है। आपको संभावित अपवाद स्थितियों को try
और catch
ब्लॉक के बीच जोड़ने की आवश्यकता है। सुरक्षित प्रोग्रामिंग के लिए try/catch blocks को और अधिक पढ़ें।
स्रोत
2017-11-09 16:15:16
सूर्य अपवाद ट्यूटोरियल: http://java.sun.com/docs/books/tutorial/essential/exceptions/index.html – BalusC