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.
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