Nicht abgefangene Ausnahme als Antwort auf IMDB-Metadatensuche

Nur ein kleiner Fehler, der beim Lesen der Protokolle auffiel – MCEBuddy parsed die Antwort auf den IMDB-Such-API-Aufruf. Sollte sich leicht mit einem einfachen Trap oder Check unterdrücken lassen. Vermutlich ist das die erwartete Antwort, wenn die Verbindung abläuft oder eine leere Antwort zurückkommt.

--> Searching IMDB for Series Title match
WARNING> --> Error parsing IMDB Show response
Error -> System.NullReferenceException: Object reference not set to an instance of an object.
   at MCEBuddy.MetaData.IMDB.SearchShowTitle(String title, Nullable`1 releaseDate, ShowType matchType, Boolean firstMatchOnly, Boolean searchAKAs, Log jobLog)
--> IMDB search titles found -> 0

Es ist beabsichtigt, das Hauptproblem zu erfassen, bei dem eine Suche unerwartet fehlschlägt. Häufig wird dies durch fehlende Informationen verursacht.

Was genau sagt uns dieser Fehler also über die Grundursache? Die wichtigen Hinweise zur wirklichen Identifizierung der Grundursache des Fehlers sind die Parameterwerte, die an diese Funktion übergeben wurden, nicht die Signatur der Funktion.

Und ja, ich weiß, das erfordert zusätzliche Arbeit, weil Java/C#/Python/etc. alle hirntot bezüglich Fehlermeldungen sind – am schlimmsten der „ClassNotFound“-Fehler, bei dem die Meldung vergisst mitzuteilen, welche Klasse nicht gefunden wurde. Pro-Tipp: Schau dir die Pragmatic-Programmer-Reihe zu Java an und wie sie den ClassNotFound-Fehler durch Überschreiben der Klasse ClassLoader lösen – ziemlich raffiniert. Man muss vielleicht ein wenig mit der Exception-Behandlung herumspielen, um die Exception zu erweitern/überschreiben, die Parameter ins MCEBuddy-Log zu schreiben und dann die ursprüngliche Exception weiterzuwerfen.

Ebenso wissen wir in diesem Fall nicht, welcher Parameter den Fehler verursacht hat (oder ob es ein einfaches Netzwerk-Timeout war) oder ob es einen API-Fehler mit einem Fehlercode gab. Wenn es jedoch einen Fehler wie hier zu sehen gibt und kein Fehlercode von der API-Anfrage zurückgegeben wird, dann sollte das ein (kleineres) Codierungsproblem auf MCEBuddy-Seite sein, nicht ein Ausbleiben der Antwort auf der API-Service-Seite (denn das wäre eine erwartete (leere) Nicht-Antwort – also diese Null-Antwort der API).

Was ist also die Grundursache?

Es teilt uns (Entwicklern) mit, dass die AKA-Informationen, die MCEBuddy auf der Suchseite erwartet, nicht vorhanden sind (sie sollten eigentlich da sein, fehlen aber).