कभी कभी, मैं ऐसे यहाँ के रूप मेंआप जावा में "असंभव" अपवाद कैसे संभालते हैं?</p> <pre><code>public void methodWithURL(URL url){ URI uri = new URI(url); //No invalud URI syntax possible } </code></pre> <p>आप इससे कैसे निपटेंगे:
URLDecoder.decode("some string", "UTF-8"); //No unknown encoding possible
या यहां, एक अपवाद मुझे पता है कि ऐसा कभी नहीं कर सकते हैं पकड़ने के लिए होने अंत करेंगे? मैं आमतौर पर ब्रह्मांड के नियमों को बदलने के तरीके के बारे में एक अजीब त्रुटि लॉग करता हूं, और फिर RuntimeException
फेंक देता हूं। क्या कोई बेहतर तरीका है?
कोशिश करें/पकड़ें (XXXException _ex) {नया AssertionError (_ex) फेंकें;} – bestsss
@bestsss मैंने RuntimeException के विकल्प के रूप में AssertionError के बारे में भी सुना है। क्या यह RuntimeException पर ऐसा करने का सामान्य तरीका है, या इस प्रकार की त्रुटियों को उप-वर्गीकृत करने का एक बेहतर तरीका है? धन्यवाद! (भी, आप उत्तर अनुभाग में लिखना चाहेंगे) – Miquel
त्रुटि अपवाद का विस्तार नहीं करती है, इसलिए यह अत्यधिक उपयोग की कोशिश/पकड़ (अपवाद किसी भी) को छोड़ देता है। जो कुछ भी 'थ्रोबल' पकड़ता है वह स्पष्ट रूप से w/'त्रुटि 'को सौदा करेगा। ग्राहक कोड को किसी भी कारण से 'त्रुटि' नहीं पकड़ेगा। पूरी तरह से लॉग अप अपवाद है कि * नहीं होगा * आमतौर पर करने के लिए सही बात नहीं है। और, नहीं, मैं जवाब का प्रयास नहीं करना चाहता हूं :) – bestsss