擅长:python、mysql、java
<p>一个空的<code>except:</code>将捕获任何东西,因此在本例中,除了块之外,再加一个块是没有意义的。你知道吗</p>
<p>可能您想将第一个<code>except</code>块中的代码放入另一个嵌套的try/except块中。你知道吗</p>
<p><em>注意</em>:<a href="http://c2.com/cgi/wiki?PokemonExceptionHandling" rel="nofollow">Pokemon exception handling</a>被认为是不好的编码风格,如果您只尝试捕获您想要处理的实际异常就更好了-在这种情况下,只捕获<code>DoesNotExist</code>就足够了。你知道吗</p>
<p>您可以考虑使用循环来重构:</p>
<pre><code>PostModels = {
'postD': PostD,
'postY': PostY,
'postR': PostR,
}
for k,Post in PostModels.items():
try:
post = Post.objects.get(pk=pk)
except Post.DoesNotExist:
pass
else:
return PostReply.objects.filter(k=post)
else:
# all 3 lookups failed, how do you want to handle this?
</code></pre>