2013-03-30 8 views
17

वहाँ एक रास्ता बिना किसी अपवाद के जावा में एक अपवाद संदेश मुद्रित करने के लिए है?मुद्रण अपवाद संदेश

try { 
    // statements 
} catch (javax.script.ScriptException ex) { 
    System.out.println(ex.getMessage()); 
} 

उत्पादन होता है:

Invalid JavaScript code: sun.org.mozilla.javascript.internal.EvaluatorException: 
missing } after property list (<Unknown source>) in <Unknown source>; 
at line number 1 

वहाँ एक रास्ता अपवाद जानकारी, स्रोत और लाइन नंबर की जानकारी के बिना संदेश मुद्रित करने के लिए है

जब मैं कोड का निम्न भाग प्रयास करें। दूसरे शब्दों में, संदेश मैं उत्पादन में मुद्रित करने के लिए चाहते हैं:

missing } after property list 
+0

आप अपवाद संदेश स्ट्रिंग केवल उन टुकड़े आप चाहते हैं –

+2

कैसे सिर्फ संदेश के साथ println उपयोग के बारे में आप getMessage विधि के बिना उत्पादन करना चाहते हैं पाने के लिए पार्स कर सकते हैं? –

+0

आप का उपयोग 'getCause()' भीतरी सबसे अपवाद() 'उस पर पाने के लिए और' getMessage, लेकिन मैं गारंटी नहीं है कि लाइन नंबर वहाँ नहीं होगा। यह एक असामान्य उपयोगकाज है, क्या आप बता सकते हैं कि आप क्या करना चाहते हैं? तुम सिर्फ उत्पादन के लिए एक सामने के अंत के लिए एक उपयोगकर्ता के अनुकूल संदेश चाहते हैं, तो आप सिर्फ वाले हैं अगर यह वैसे भी devs के लिए मतलब है, यह अनुकूलित करने के लिए है - पूरी बात बहुत दोस्ताना है। – TC1

उत्तर

-10
try { 
} catch (javax.script.ScriptException ex) { 
// System.out.println(ex.getMessage()); 
} 
17

उत्पादन मेरे लिए सही लगती है:

Invalid JavaScript code: sun.org.mozilla.javascript.internal.EvaluatorException: missing } after property list (<Unknown source>) in <Unknown source>; at line number 1 

मुझे लगता है कि Invalid Javascript code: .. अपवाद संदेश की शुरुआत है ।

आम तौर पर स्टैकट्रेस संदेश के साथ दिया जाता है नहीं:

try { 
    throw new RuntimeException("hu?\ntrace-line1\ntrace-line2"); 
} catch (Exception e) { 
    System.out.println(e.getMessage()); // prints "hu?" 
} 

तो शायद कोड आप बुला रहे हैं कैच एक अपवाद है और एक ScriptException rethrows। इस मामले में शायद e.getCause().getMessage() आपकी मदद कर सकता है।

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