MCEBuddy 在 IMDB 查詢中記錄的例外狀況

我猜测这是一个超时,但无法确定,也不知道是否更严重。
我在转换日志中持续看到这些。它似乎不影响性能,我不确定是否会导致元数据丢失。

WARNING --> Unable to connect to TVDB
Error -> System.Net.WebException: The remote server returned an error: (504) Gateway Timeout.
   at System.Net.HttpWebRequest.GetResponse()
   at MCEBuddy.Util.Internet.WGet(Uri Uri, Int32 timeout)
   at MCEBuddy.MetaData.TVDB.DownloadSeriesDetails(VideoTags videoTags, Boolean prioritizeMatchDate, Boolean overwrite, Log jobLog)

在我看来,网关超时错误可以被捕获并抑制。整个堆栈跟踪的日志细节并没有增加更多信息。

其他未捕获的异常(也很可能来自服务调用无响应)也会抛出堆栈跟踪。我不知道这些是否表明有其他问题,例如他们的 API 发生了变化,或者 MCEBuddy 对响应的解析存在问题。在我看来,失败的响应与成功但无数据的响应是不同的,而这里可能没有被考虑到。

INFORMATION> 2020-03-13T22:25:37 MCEBuddy.MetaData.VideoMetaData --> Checking IMDB
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)
WARNING --> Unable to get match from IMDB
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)
WARNING --> Unable to get match from IMDB

此外,Java 的堆栈跟踪很糟糕,因为错误是由传入函数的特定参数值引起的,所以函数签名并没有太大帮助。参见类加载器失败作为“我找不到某个类,但我不会告诉你它是什么,这样你就无法真正修复缺失类文件的问题”的典型例子。