擅长:python、mysql、java
<p>由于agf已经提供了我推荐的方法,下面是他的例程的一个版本,其中有一些小的改进:</p>
<pre><code>def try_except(success, failure, *exceptions):
try:
return success()
except exceptions or Exception:
return failure() if callable(failure) else failure
</code></pre>
<p>此版本:</p>
<ol>
<li><p>允许您指定将作为附加可选参数捕获的异常。您应该始终捕获将执行此任务的最小异常集,并让无法处理的异常向调用者冒泡。</p></li>
<li><p>支持对故障值使用普通值和函数。这就省去了你在很多情况下使用lambda。(当然,您可以使用<code>str</code>,而不是<code>lambda: ''</code>。)</p></li>
</ol>