G
Gelöschtes Mitglied 68249
Gast
Hallo zusammen,
ich habe ein kleines Problem. Ich habe ein Projekt in dem ich viele Hilfsmodule gemacht habe, um mir ständig wiederkehrenden Code zu ersparen. In den Modulen habe ich kein Logging eingebaut, um eine redundante Log4J zu vermeiden.
Bisher war es total fein, dass wenn in einem Modul ein Fehler gedroppt ist, diesen zu fangen und dann eine eigene Exception zurück zu liefern und dann im Aufrufer damit um zu gehen.
Jetzt habe ich aber einen Fehler, den ich so nicht behandeln möchte.
Ich habe eine Hilfsklasse, die sich um CSV Input und Output kümmert.
Darin ist eine Methode, die mir aus dem Pfad der CSV ein JSONArray mit deren Inhalt liefert.
Die Methoden darin sehen jetzt so aus:
Neu ist der Try-Catch-Block in Zeile 21 - 25 weil es hier zu einem Fehler kam. Die Datei hat 7 Überschriften, aber in einer einzelnen Zeile kommt es aufgrund eines Fehlers im Datenlieferanten dazu, dass das Programm 8 Werte erkennt, kommt also damit zu einem Fehler und das ganze Programm bricht ab (schlechtes Errorhandling, bau ich auch noch um). Mit dem Try-Catch-Block geht es jetzt zwar weiter, aber ich wüsste ja gerne, dass es in einer Zeile zu einem Fehler gekommen ist, weil in dem konkreten Fall jetzt muss im Lieferanten etwas korrigiert werden. Das würde mir ja mit der aktuellen Umsetzung niemals auffallen.
Jetzt habe ich über die Möglichkeiten nachgedacht mir irgendwie ein Logging in der Hilfsklasse auf zu bauen. Im AppacheHttpClient ist das doch auch so, dass ich dem über die JARs sage, welchen Logger ich verwende und dann wird das darüber geleitet.
Nachteil dabei ist, dass ich zum einen nicht weiß, wie das geht.
Könnt ihr mir erklären, wie das bei solchen externen Klassen geregelt wird, oder mir eine Stelle im Internet verweisen, wo ich das nachlesen kann? Ich weiß nicht mal, nach was ich googlen soll.
ich habe ein kleines Problem. Ich habe ein Projekt in dem ich viele Hilfsmodule gemacht habe, um mir ständig wiederkehrenden Code zu ersparen. In den Modulen habe ich kein Logging eingebaut, um eine redundante Log4J zu vermeiden.
Bisher war es total fein, dass wenn in einem Modul ein Fehler gedroppt ist, diesen zu fangen und dann eine eigene Exception zurück zu liefern und dann im Aufrufer damit um zu gehen.
Jetzt habe ich aber einen Fehler, den ich so nicht behandeln möchte.
Ich habe eine Hilfsklasse, die sich um CSV Input und Output kümmert.
Darin ist eine Methode, die mir aus dem Pfad der CSV ein JSONArray mit deren Inhalt liefert.
Die Methoden darin sehen jetzt so aus:
Java:
private static JSONArray processWithHeader(List<String> lines) throws JSONException {
Map<Integer, String> headlineMap = getHeadLine(lines.get(0));
lines.remove(0);
JSONArray jsonArray = new JSONArray();
for(String line : lines) {
JSONObject jsonObject = processLine(line, headlineMap);
if(jsonObject != null) {
jsonArray.put(jsonObject);
}
}
return jsonArray;
}
private static JSONObject processLine(String line, Map<Integer, String> headlineMap) throws JSONException {
JSONObject jsonObject = new JSONObject();
List<String> lineSplit = newSplitLine(line);
for(int i = 0; i < lineSplit.size(); i++) {
try {
jsonObject.put(headlineMap.get(i), lineSplit.get(i));
} catch(NullPointerException | IndexOutOfBoundsException e) {
return null;
}
}
return jsonObject;
}
Jetzt habe ich über die Möglichkeiten nachgedacht mir irgendwie ein Logging in der Hilfsklasse auf zu bauen. Im AppacheHttpClient ist das doch auch so, dass ich dem über die JARs sage, welchen Logger ich verwende und dann wird das darüber geleitet.
Nachteil dabei ist, dass ich zum einen nicht weiß, wie das geht.
Könnt ihr mir erklären, wie das bei solchen externen Klassen geregelt wird, oder mir eine Stelle im Internet verweisen, wo ich das nachlesen kann? Ich weiß nicht mal, nach was ich googlen soll.