runnable Jar programs के लिए मैं बना देता हूं, अगर मैं इसे कमांड प्रॉम्प्ट (java -jar myprogram.jar
) से चलाता हूं तो मैं अनचाहे अपवाद पढ़ सकता हूं।रननेबल जार प्रोग्राम कैसे बनाएं जो चुपचाप विफल न हों?
उदाहरण कोड:
public static void main(String args[]) {
try {
EntireProgram();
} catch (Throwable t) {
throw new Error("somehow our error handling code has errors");
}
}
public static void EntireProgram() {
System.out.println(1/0);
}
कमांड लाइन उत्पादन:
हालांकि, अगर मैं द्वारा जार कार्यक्रम चलाने पर डबल-क्लिक (सबसे अंत उपयोगकर्ताओं की उम्मीद) , अनचाहे अपवाद चुप रहें। मैंने देखा है कि यह "देशी Windows प्रोग्राम" जो मेरा मानना है कि ओएस डिफ़ॉल्ट प्रबंधक (मॉडल संवाद संदेश) द्वारा नियंत्रित बिना क्रिया अपवाद के विपरीत है:
इस तरह से अनचाहे अपवादों को संभालने का लाभ यह है कि उपयोगकर्ता कुछ गलत हुआ है (और शायद इसकी उम्मीद है, उम्मीद है)।
मैं अपने प्रोग्राम के अनचाहे अपवादों को इस तरह से कैसे संभाला जा सकता हूं?
मुझे नहीं लगता कि यह काम करेगा। मैं एक समस्या में फंस गया, जहां मेरे 'स्विंग' आधारित एप्लिकेशन को 'जावा 1.6' और उससे ऊपर की आवश्यकता होती है, लेकिन जब मैं जावा के निचले संस्करण में उस एप्लिकेशन को निष्पादित कर रहा था तो यह कुछ भी नहीं दिखा रहा था, यहां तक कि मैंने' showMessageDialog' को पकड़ लिया था ब्लॉक, क्योंकि 'ClassNotFoundError' नामक त्रुटि हुई थी। – Vishrant
@ user3505725, वहां * अभी भी त्रुटियां होंगी। हम कोड को त्रुटि मुक्त होने की उम्मीद नहीं कर सकते हैं, इस प्रकार हम त्रुटि-हैंडलिंग कोड (showMessageDialog) को त्रुटि मुक्त होने की उम्मीद नहीं कर सकते हैं। हम ओएस को त्रुटि-हैंडलिंग की ज़िम्मेदारी कैसे बदल सकते हैं? – Pacerier