擅长:python、mysql、java
<p>如果这是为了捕获编程错误,那么assert更干净。</p>
<pre><code>def my_function(self):
assert self.validate()
return self.x, self.y
</code></pre>
<p>如果要捕获运行时错误(可能是用户提供的数据),那么异常更好。</p>
<pre><code>def my_function(self):
if not self.validate():
raise ValidationError
return self.x, self.y
</code></pre>
<p>这里一个很好的替代方法是self.validate()本身引发验证错误:例如,这将允许提供一条消息,说明验证错误的原因。</p>