2011-10-18 20 views
5

मैं जावा सीखना शुरू कर रहा हूं और जावा में अपनी पहली उपयोगिता कक्षाएं लिख रहा हूं जो उत्पादन में जाना चाहिए। जब मैं अपवादों से निपटने के लिए आ रहा हूं तो मैं कुछ हद तक खो गया हूं। क्या कोड के दिए गए लाइनों में कितने प्रयास कथन हैं, इस पर कुछ ballpark आंकड़ा है?जावा अपवादों को संभालने में सर्वोत्तम प्रथाएं

अपवादों के साथ कोड का कितना अंश सौदा किया जाना चाहिए .. ग्रहण के लिए एक प्लगइन?

क्या कोशिश करें ब्लॉक में 3-4 कथन शामिल करने और अपवाद को पकड़ने या कोशिश करने के लिए 10-12 लाइनों को शामिल करने का सबसे अच्छा अभ्यास है और बाद में विभिन्न प्रकार के अपवादों को पकड़ने वाले 2-3 पकड़ विवरण शामिल हैं जो कहते हैं कि फाइल संबंधित या मेरी अपनी कक्षाओं या कुछ अन्य तृतीय पक्ष वर्गों द्वारा ..? पूर्व आंखों के लिए थोड़ा नापसंद है और यह कोड को बहुत खराब कर रहा है ..

क्या यह सामान्य अभ्यास केवल उस कोड को घेरे हुए है जो कोशिश ब्लॉक में है जो अपवाद फेंक सकता है या आसपास के कोड के साथ टैग करना ठीक है अंदर आज़माएं कि फ़ाइल हैंडल का उपयोग कैसे किया जा रहा है आदि ..

कोई पॉइंटर्स ..?

+2

आप रास्ते से बाहर जा रहे हैं। सबसे पहले यह जानने की कोशिश करें कि अपवाद और उनके प्रकार क्या हैं और क्या प्रयास करें, पकड़ें और फेंक दें। तो आप स्पष्ट होंगे। –

+2

मेरी टिप: अपने दिमाग से "try-catch block" वाक्यांश मिटाएं। "कोशिश करें अंततः ब्लॉक" के बजाय सोचें। उन अपवादों को पकड़ें जहां आप पुनर्प्राप्त कर सकते हैं, या जहां आप उन्हें लॉग इन करना चाहते हैं और आगे बढ़ना चाहते हैं ... यह आमतौर पर आपके कार्यक्रम में बहुत उच्च स्तर पर होता है। – erickson

+0

पहले मेरा जवाब यहां देखें: http://stackoverflow.com/questions/7129979/java-exception-handling/7130076#7130076 और फिर http://download.oracle.com/javase/tutorial/essential/exceptions/index .html आपके लिए सबसे अच्छा ट्यूटोरियल हो सकता है। –

उत्तर

2

मुझे लगता है कि आप पहली बार अपवाद के बारे में स्पष्ट होने की जरूरत है "यह एक कोशिश ब्लॉक और पकड़ अपवाद या ... में 3-4 बयान शामिल करने के लिए सबसे अच्छा अभ्यास है"।

try { 
    ...some code that throws exceptions 
} catch (Exception ex){ 
    ex.printStacktrace(); 
} 

उपर्युक्त अपवाद को संभालने का स्निपेट है। अपवाद हैंडलिंग में, हम उस कोड को रखते हैं जो try{} ब्लॉक में अपवाद उत्पन्न कर सकता है, और यदि राज्य ब्लॉक में प्रयास ब्लॉक अपवाद उत्पन्न करता है तो इसे catch{} ब्लॉक द्वारा पकड़ा जाएगा।

कोशिश करें ब्लॉक और पकड़ अपवाद में 3-4 कथन शामिल करना है या नहीं। .. नियमों द्वारा निर्धारित नहीं है। यह आपके तर्क और कार्यक्रम की आवश्यकता पर निर्भर करता है। http://marakana.com/bookshelf/java_fundamentals_tutorial/exceptions.html

सर्वोत्तम प्रथाओं जावा अपवाद के बारे में के लिए, निम्न लेख और गुणवत्ता आश्वासन का पालन करें:


नीचे दिए गए लिंक आप जावा अपवाद के बारे में funda स्पष्ट करने के लिए मदद करता है।

Best practices for exception management in Java or C#

http://www.wikijava.org/wiki/10_best_practices_with_Exceptions

+0

मैं सर्वोत्तम समझने के लिए इस ट्यूटोरियल की भी सिफारिश करता हूं जावा में अपवादों का उपयोग करने के अभ्यास: [जावा में प्रभावी रूप से अपवादों का उपयोग करें] (http://programmergate.com/use-exceptions-effectively/) –

0

मैं लाइनों गिनती नहीं होगी।

एक कोशिश पकड़ ब्लॉक कोड के ब्लॉक के रूप में सफल होता है या कोड के ब्लॉक (सामान्यताओं में) के रूप में विफल रहता है। तो आप एक कोशिश/पकड़ ब्लॉक में शामिल होने के लिए 'काम की इकाई' पर विचार कर सकते हैं। यह एक विधि की एक ही मूल परिभाषा है। तो दोनों अक्सर एक साथ जा सकते हैं।

एक विधि में एक कोशिश/पकड़ ब्लॉक रखें।

एक शुरुआती गलती (मुझे लगता है) कई अलग-अलग प्रयास पकड़ने वाले ब्लॉक बनाने के लिए है, लगभग प्रति पंक्ति एक बिंदु के लिए। आम तौर पर आप केवल एक बड़ा चाहते हैं, जिसमें उस काम की इकाई शामिल होती है जिसे आप करने की कोशिश कर रहे हैं।

1

जावा ट्यूटोरियल से इस निशान को देखें: http://download.oracle.com/javase/tutorial/essential/exceptions/index.html (ध्यान दें कि यह जावा 7 के लिए है)।

असाधारण हैंडलिंग में सर्वोत्तम प्रथाओं को कोड अनुपात के संदर्भ में वास्तव में व्यक्त नहीं किया जा सकता है। सबसे पहले त्रुटियों, अपवादों और रनटाइम अपवादों के बीच महत्वपूर्ण अंतर जानें। त्रुटियां और अपवाद Throwable पदानुक्रम की दो अलग-अलग शाखाएं हैं। रनटाइम अपवाद विशेष अपवाद प्रकार हैं जिन्हें घोषणा की आवश्यकता नहीं होती है क्योंकि उनसे सामान्य कोड से निपटने की अपेक्षा नहीं की जाती है। एक बार जब आप समझें कि प्रत्येक क्या करता है, तो आप अच्छी तरह से चल रहे हैं।

ध्यान रखें कि अपवाद हैंडलिंग केवल सर्वोत्तम प्रथाओं और सामान्य ज्ञान नहीं है, बल्कि शैली और राय द्वारा कुछ डिग्री से भी प्रभावित है। कुछ लोग जल्दी अपवाद पकड़ना पसंद करते हैं, जिससे कोड में बहुत से प्रयास-पकड़ ब्लॉक होते हैं। दूसरों को कोशिश के साथ बड़ी संख्या में लाइनों को घेरना पसंद है।

यदि आप पुराने जावा संस्करण के बजाय जेडीके 7 का उपयोग करने की स्वतंत्रता रखते हैं, तो प्रयास-संसाधनों के निर्माण और बहु-पकड़ तंत्र की जांच करें, जिनमें से दोनों अपवाद को अधिक सुरुचिपूर्ण और कम करने में मदद करेंगे कोड ब्लोट।

संबंधित मुद्दे