[Java] Filterstapelspuren

Dinge die zu tun sind

Selbst wenn Sie selbst eine "Ausnahme" mit einem Framework wie "SpringBoot" erstellen und als bekanntes Verhalten einen Fehler auslösen, wird die Stapelverfolgung im Protokoll so angezeigt, wie sie ist. Mit anderen Worten, es ist klar, dass die Fehlerursache in der Anwendung liegt, aber es werden lediglich nutzlose Informationen angezeigt.

Wenn der Stack-Trace lang ist, beeinträchtigt dies das Lesen und die Protokollkapazität steigt zu stark an, was zu Problemen führen kann. Daher ist es besser, keine zusätzlichen Informationen zu haben.

Filtern Sie daher die Stapelverfolgung.

Weise

Sie können dies tun, indem Sie eine Filterfunktion wie unten gezeigt und "setStackTrace" im Konstruktor vorbereiten. Der Paketname ist eine Zeichenfolge wie "com.wrongwrong.example", die das Stammpaket angibt.

public class MyException extends RuntimeException {
    static StackTraceElement[] filteringStackTrace(StackTraceElement[] elements) {
        return Arrays.stream(elements)
                .filter(it -> it.getClassName().startsWith("${Paketnamen}"))
                .toArray(StackTraceElement[]::new);
    }

    public MyException(String msg) {
        super(msg);
        setStackTrace(filteringStackTrace(getStackTrace()));
    }
}

Recommended Posts

[Java] Filterstapelspuren
[Java] Servlet-Filter
[Java] Erstellen Sie einen Filter
[Java] Stapelbereich und statischer Bereich
Protokollieren Sie den Java NullPointerException-Stack-Trace
[Java] Stream (Filter, Map, ForEach, Reduce)
[Java] Sammlungsliste / Set / Map / Stack / Queue
Java-Referenzmechanismus (Stack und Heap)
Java
Java
So implementieren Sie den Kalman-Filter mit Java
Abrufen von Anruferinformationen aus dem Stack-Trace (Java)
Sobel-Filter mit OpenCV unter Android (Java)
Implementieren Sie so etwas wie einen Stack in Java