Ongevangen uitzondering als reactie op IMDB metadata zoekopdracht

Alleen een kleine bug opgemerkt bij het lezen van de logs en dit gevonden waar MCEBuddy het antwoord op de IMDB-zoek-API-aanroep parseert. Zou een eenvoudige val of controle moeten zijn om te onderdrukken. Waarschijnlijk is dit het verwachte antwoord wanneer de verbinding time-out of mogelijk een leeg antwoord.

--> Zoeken op IMDB naar overeenkomst met serietitel
WARNING> --> Fout bij het parseren van IMDB-showreactie
Error -> System.NullReferenceException: Verwijzing naar een object is niet op een exemplaar van een object ingesteld.
   at MCEBuddy.MetaData.IMDB.SearchShowTitle(String title, Nullable`1 releaseDate, ShowType matchType, Boolean firstMatchOnly, Boolean searchAKAs, Log jobLog)
--> IMDB-zoektitels gevonden -> 0

Het is bedoeld om het hoofdprobleem vast te leggen waarbij een opzoeking onverwacht mislukt. Vaak wordt dit veroorzaakt door ontbrekende informatie.

Wat vertelt die fout ons precies over de oorzaak? De belangrijke onderdelen om de werkelijke oorzaak van het falen te achterhalen zijn de parameterwaarden die aan die functie worden meegegeven, niet de signatuur van de functie.

En ja, ik weet dat het wat extra werk vergt omdat Java/C#/Python/etc. compleet waardeloos zijn wat betreft foutmeldingen, waarvan de ergste de “ClassNotFound”-fout is, waarbij het bericht vergeet te vermelden welke klasse niet gevonden is. ProTip: zoek de Pragmatic Programmer-serie over Java op en kijk hoe ze de ClassNotFound-fout oplossen door de ClassLoader-klasse te overschrijven — behoorlijk slim. Het kan wat geklooi met de Exception-handling vereisen om de Exception uit te breiden/overschrijven, de parameters in de MCEBuddy-log uit te spuwen en vervolgens de oorspronkelijke exception opnieuw te gooien.

Op dezelfde manier weten we in dit geval niet welke parameter de fout veroorzaakte (of het simpelweg een netwerk-timeout was) of of er een API-fout met een foutcode was. Hoewel, als er een fout is zoals we hier zien en er geen foutcode door de API-call wordt teruggegeven, dan zou dat een (klein) coderingsprobleem aan de MCEBuddy-kant moeten zijn, niet het ontbreken van een reactie aan de API-servicekant (aangezien dat een verwachte (lege) niet-reactie zou zijn — d.w.z. deze null-response van de API).

Wat is dan de oorzaak?

Het vertelt ons (ontwikkelaars) dat de AKA-informatie die MCEBuddy verwachtte op de opzoeksite niet bestaat (het zou er wel moeten zijn, maar ontbreekt).