我有以下代码:
try:
pk = a_method_that_may_raise_an_exception()
except:
method_to_be_executed_in_case_of_exception_or_pk_is_false()
else:
if pk:
process_pk()
else:
method_to_be_executed_in_case_of_exception_or_pk_is_false()
这可以写成:
try:
if a_method_that_may_raise_an_exception():
process_pk()
else:
method_to_be_executed_in_case_of_exception_or_pk_is_false()
except:
method_to_be_executed_in_case_of_exception_or_pk_is_false()
我不高兴这个 method_to_be_executed_in_case_of_exception_or_pk_is_false()
方法出现了两次,即在if和try...except的else中都出现了。
有没有更好的方法来解决这个问题?
except
而不是从两个地方调用同一个函数。你应该重写代码,只捕获你预期会抛出的异常。 - Duncanmethod_to_be_executed_in_case_of_exception_or_pk_is_false
可能会抛出异常,导致它被执行两次! - Eric