Bir istisnanın yığın izini stderr dışındaki bir akışa nasıl yazdırabilirim? Bulduğum yollardan biri getStackTrace() kullanmak ve tüm listeyi akışa yazdırmaktır.Özel durumun yığın izini yazdırma
cevap
Throwable sınıfı printStackTrace
adlandırılan iki yöntem, söz konusu akışına yığın izleme çıktılar bir PrintStream
alır bir PrintWriter
ve bir kabul eden bir sağlar. Bunlardan birini kullanmayı düşünün.
Baskı akışı bir argüman olarak alan alternatif bir Throwable.printStackTrace() biçimi vardır. ILLUSTRATORNG.
catch(Exception e) {
e.printStackTrace(System.out);
}
Bu, yığın izini std hatası yerine std olarak yazdırır.
@FranklinYu, sorunun tam noktası, stderr'e değil, başka bir rastgele akışa yazdırmak istememesi. –
güzel değil, ama yine de bir çözüm:
StringWriter writer = new StringWriter();
PrintWriter printWriter = new PrintWriter(writer);
exception.printStackTrace(printWriter);
printWriter.flush();
String stackTrace = writer.toString();
İhtiyacım olan budur (bunu kullanarak gerçekten kirli hissediyorum bile!) –
android dev minimalistlere için javadoc
out = some stream ...
try
{
}
catch (Exception cause)
{
cause . printStrackTrace (new PrintStream (out)) ;
}
bakınız: Log.getStackTraceString(exception)
Ben stackTrace
alma konusunda yardımcı olan bir yöntem varprivate 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();
Eğer dize olarak istisna izini almak istiyorsanız
}
- 1. Groovy yığın izini nasıl yazdırırım?
- 2. karınca BuildException/ExitStatusException yığın izini
- 3. Yığın izini Python'daki bir Özel Durum Nesnesinden nasıl alırım?
- 4. Python'da bir özel durumun yığın izlemesini program aracılığıyla nasıl denetlersiniz?
- 5. Geçerli yığın izini Mac OS X'e getirme
- 6. AggregateException içinde TaskCanceledException yığın izini içermiyor
- 7. Proguard retrace, yığın izini gerçek kaynağa eşleştirmiyor
- 8. Tam yığın izini GlassFish ile nasıl yazdırabilirim?
- 9. Parametrelerin değerlerini yığın izlemeye göre yazdırma
- 10. Tetiklenmiş MutationObserver için nasıl bir yığın izini alırsınız?
- 11. Visual Studio'yu yüklemeden Windows'da bir kilitlenme yığın izini alın? (C++)
- 12. NLog ile istisnaları günlüğe kaydederken Yığın izini nasıl alabilirim?
- 13. Rails 4 konsolunda özel yığın yığınını etkinleştir
- 14. Yeni yığın Arası yığın izleme ve iç özel durum bilgilerini korurken Özel Durum
- 15. Blackberry'de bir Dize biçiminde yığın özelliğinin yığın izini almanın bir yolu var mı?
- 16. Başka bir konudan bir istisna atıldığında yığın izi yazma
- 17. Java yığın alanı özel durum
- 18. Python C API: özel durumun dize temsili nasıl alınır?
- 19. Üçüncü taraf dll, özel durumun olmadığı bir program çöküyor
- 20. Eşzamansız bir geri aramada atılan bir özel durumun yakalanması
- 21. Python'un hata ayıklayıcısında bir özel durumun ayrıntılarını nasıl görebilirim?
- 22. Belirli bir özel durumun atılmadığını nasıl test edebilirim?
- 23. Tepki, durumun nasıl güncelleştirileceği
- 24. boost :: format ve özel std kapsayıcıları yazdırma
- 25. Bash komut dosyasında özel karakterler yazdırma
- 26. Raf aracı "yığın yakalama" yığın izlemesi
- 27. Java'da bir istisna atmadan bir yığın izini boşaltmanın bir yolu var mı?
- 28. NodeJS: Bir çağrı zaman uyumsuzluğu işlevinin yığın izini göstermek mümkün mü?
- 29. Yığında SDK sınıfları ile Eclipse'de yığın izini aldığınızda, SDK kaynaklarını nasıl görüyorsunuz?
- 30. Yığın izim nereye gitti?
Eğer bir String birleştirebilirsiniz StackTraceElement' nesnelerin 'dizisi döndürür Trowable (İstisna) ait getStackTrace' yöntemi' çağırabilirsiniz (toString yöntemini kullanarak Bu nesne bir iz bir satır elde etmek için). – jcubic