<pre><code>import imdb
from imdb import IMDbDataAccessError
try:
ia = imdb.IMDb(accessSystem='http', reraiseExceptions=True)
movie = ia.get_movie('12121212212121')
except:
print("error")
</code></pre>
<p><a href="https://github.com/alberanid/imdbpy/blob/master/docs/imdbpy.cfg#L38" rel="nofollow noreferrer">reraiseExceptions</a>的选项有帮助。现在程序输出跟踪,然后输出<code>error</code>。你知道吗</p>
<hr/>
<p>我通过查看引发异常的函数的源代码发现了这一点。i、 例如<code>retrieve_unicode</code>和<code>update</code>。搜索<code>"ret = method(mopID)"</code>我找到了<a href="https://github.com/alberanid/imdbpy/blob/dfbebd3dd9836dcc2e33757bd5c93181db427874/imdb/__init__.py#L732" rel="nofollow noreferrer">this</a>,只有在IMDB Base对象中<code>self._reraise_exceptions</code>设置为true时,它才会再次引发异常。你知道吗</p>
<p>我创建了一个<a href="https://github.com/alberanid/imdbpy/issues/238" rel="nofollow noreferrer">issue</a>,让他们更清楚地看到这个设置是必要的</p>
<hr/>
<p>同样值得注意的是他们的<a href="https://github.com/alberanid/imdbpy/blob/master/docs/imdbpy.cfg#L48" rel="nofollow noreferrer">config</a>摘录:</p>
<pre><code>## Set the threshold for logging messages.
# Can be one of "debug", "info", "warning", "error", "critical" (default:
# "warning").
#loggingLevel = debug
</code></pre>
<p>这意味着您可以减少日志的详细程度。但是,传递<code>loggingLevel="critical"</code>参数似乎不会减少控制台输出。这是因为这些错误本身就属于<code>critical</code>级别。<br/>
但是,您可以<a href="https://stackoverflow.com/a/3116067/2550406">disable the logger completely</a>:</p>
<pre><code>import imdb
from imdb import IMDbDataAccessError
import logging
try:
logger = logging.getLogger('imdbpy');
logger.disabled = True
ia = imdb.IMDb(accessSystem='http', reraiseExceptions=True, loggingLevel="critical")
movie = ia.get_movie('12121212212121')
except IMDbDataAccessError:
print("error")
</code></pre>
<p>记录器的名称是<a href="https://github.com/alberanid/imdbpy/blob/dfbebd3dd9836dcc2e33757bd5c93181db427874/imdb/__init__.py#L52" rel="nofollow noreferrer">currently</a><code>'imdbpy'</code>和<code>'imdbpy.aux'</code>。你知道吗</p>