Najprostszym sposobem, aby stłumić StackTrace na każdy wyjątek jest
throwable.setStackTrace(new StackTraceElement[0]);
Jeśli wyjątek ma przyczynę, może trzeba zrobić to samo rekurencyjnie.
Zmniejsza to również kosztowne tworzenie śladu stos, jak to tylko możliwe
StackTrace na ratunkowym jest inicjowany w
Throwable#fillInStackTrace()
, która jest wywoływana przez konstruktor, a zatem nie może być unikanym. Gdy StackTrace jest faktycznie stosowany An StackTraceElement [] leniwie jest skonstruowana
Throwable#getOurStackTrace()
których tylko nastąpi, jeżeli Throwable.stackTrace pola nie była już ustawiona.
Ustawienie stosu stack na wartość inną niż null, unika konstrukcji StackTraceElement [] w Throwable # getOurStackTrace() i zmniejsza w jak największym stopniu obniżenie wydajności.
Co JVM? Środowisko? itp. Czy to pomaga? http://stackoverflow.com/questions/4659151/recurring-exception-without-a-stack-trace-how-torereset –
@SB. Tak, to pomaga. Wielkie dzięki. Mam bardzo podobny problem: mam wiele wyjątków (NPE). Metoda 'error' z' log4j' loguje pewne wyjątki _ bez \ śledzenia stosu. – Michael