मैं stderr के अलावा किसी स्ट्रीम के अपवाद के स्टैक ट्रेस को कैसे प्रिंट करूं? एक तरीका मैंने पाया है getStackTrace() का उपयोग करना और पूरी सूची को स्ट्रीम में प्रिंट करना है।अपवाद के स्टैक ट्रेस को प्रिंट करें
उत्तर
Throwable वर्ग printStackTrace
नामित दो तरीकों, एक है कि एक PrintWriter
और एक, कि एक PrintStream
में ले जाता है कि यह देखते हुए धारा में स्टैक ट्रेस आउटपुट को स्वीकार करता है प्रदान करता है। इनमें से एक का उपयोग करने पर विचार करें।
Throwable.printStackTrace() का एक वैकल्पिक रूप है जो एक प्रिंट स्ट्रीम को तर्क के रूप में लेता है। http://download.oracle.com/javase/6/docs/api/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)
उदा।
catch(Exception e) {
e.printStackTrace(System.out);
}
यह स्टैक त्रुटि के बजाय स्टैक ट्रेस को std out प्रिंट करेगा।
@ फ्रैंकलिनयु, सवाल का पूरा बिंदु यह है कि वह stderr पर प्रिंट नहीं करना चाहता, बल्कि एक अन्य मनमानी धारा के लिए। –
सुंदर नहीं, लेकिन फिर भी एक समाधान:
StringWriter writer = new StringWriter();
PrintWriter printWriter = new PrintWriter(writer);
exception.printStackTrace(printWriter);
printWriter.flush();
String stackTrace = writer.toString();
यह वही है जो मुझे चाहिए (भले ही मैं इसे वास्तव में गंदा महसूस कर रहा हूं!) –
out = some stream ...
try
{
}
catch (Exception cause)
{
cause . printStrackTrace (new PrintStream (out)) ;
}
देखें एंड्रॉयड देव minimalists के लिए: Log.getStackTraceString(exception)
आप इसका उपयोग मनमाने ढंग से स्ट्रीम पर प्रिंट करने के लिए नहीं कर सकते। यह केवल तब उपयोगी होता है जब आपके पास लॉगर कॉन्फ़िगर किया गया हो। –
यह एंड्रॉइड विकास के लिए बहुत अच्छा काम करता है। धन्यवाद! – wyzkid207
मुझे यह न्यूनतम दृष्टिकोण पसंद आया लेकिन यह मेरे slf4j के साथ जेल नहीं था :( – killjoy
मैं एक विधि है कि स्टैकट्रेस
हो रही के साथ मदद करता हैprivate static String getStackTrace(Exception ex) {
StringBuffer sb = new StringBuffer(500);
StackTraceElement[] st = ex.getStackTrace();
sb.append(ex.getClass().getName() + ": " + ex.getMessage() + "\n");
for (int i = 0; i < st.length; i++) {
sb.append("\t at " + st[i].toString() + "\n");
}
return sb.toString();
}
- 1. प्रिंट पायथन स्टैक ट्रेस उठाए बिना अपवाद
- 2. जावास्क्रिप्ट अपवाद स्टैक ट्रेस
- 3. सी # में अपवाद के स्टैक ट्रेस को कैसे प्रारूपित करें?
- 4. आउटपुट विंडो में प्रिंट स्टैक ट्रेस
- 5. स्टैक ट्रेस
- 6. जावा में स्टैक ट्रेस के बिना अपवाद
- 7. सी ++ (एमएसवीसी) में स्टैक ट्रेस प्रिंट करना?
- 8. मैं ग्रोवी स्टैक ट्रेस कैसे प्रिंट करूं?
- 9. स्टैक ट्रेस
- 10. एक स्टैक ट्रेस के बिना पुनरावर्ती अपवाद - रीसेट कैसे करें?
- 11. स्टैक ट्रेस
- 12. "स्टैक ट्रेस
- 13. पोर्टेबल सी ++ अपवाद पर स्टैक ट्रेस
- 14. स्टैक ट्रेस
- 15. रेल: अपवाद के पूरे स्टैक ट्रेस को लॉगिंग
- 16. NullPointerException स्टैक ट्रेस डीबग एजेंट
- 17. जावास्क्रिप्ट स्टैक ट्रेस से जावा वास्तविक स्टैक ट्रेस ढूंढना
- 18. स्विंगवर्कर के अंदर फेंकने पर मेरा जावा अपवाद स्टैक ट्रेस क्यों नहीं प्रिंट करता है?
- 19. ऑब्जेक्टिव-सी स्टैक ट्रेस
- 20. स्टैक ट्रेस 3
- 21. धागे के स्टैक ट्रेस कैसे प्राप्त करें
- 22. BuildException/ExitStatusException स्टैक ट्रेस
- 23. किसी अन्य धागे से एक स्टैक ट्रेस प्रिंट करना
- 24. इसे मुद्रित करने के लिए स्कैला में अपवाद के स्टैक ट्रेस कैसे प्राप्त करें?
- 25. एनएलओजी के साथ अपवाद लॉग करते समय स्टैक ट्रेस कैसे प्राप्त करें?
- 26. "यह" पॉइंटर स्टैक ट्रेस
- 27. जावा प्रोग्राम में स्टैक ट्रेस पीढ़ी को कैसे अक्षम करें?
- 28. सी # स्टैक ट्रेस
- 29. स्टैक ट्रेस: System.Web.HttpServerUtility.ExecuteInternal() || एमवीसी 2.0
- 30. बिना किसी अपवाद के .NET में वर्तमान स्टैक ट्रेस को कैसे मुद्रित करें?
आप स्ट्रिंग के रूप में अपवाद का पता लगाने प्राप्त करना चाहते हैं आप 'कॉल कर सकते हैं Trowable (अपवाद) है कि' StackTraceElement' ऑब्जेक्ट की श्रेणी है कि आप एक स्ट्रिंग के लिए गठजोड़ कर सकते हैं वापस आ जाएगी की getStackTrace' विधि (के toString विधि का उपयोग उस वस्तु को ट्रेस की एक पंक्ति प्राप्त करने के लिए)। – jcubic