1

我有以下 try/except 块。由于 except 块有它自己的return语句,因此在这种情况下我有 3 种可能的方式,如果块成功,我可以放置return语句。try是否有约定或最佳实践?

版本 1:

try:
    self.validate()
    self.perform_creation()

except UserException as e:
    show_error(e.message)
    return super().render(request)

return redirect(self.next)  # Return here

版本 2:

try:
    self.validate()
    self.perform_creation()
    return redirect(self.next)  # Return here

except UserException as e:
    show_error(e.message)
    return super().render(request)

版本 3:

try:
    self.validate()
    self.perform_creation()

except UserException as e:
    show_error(e.message)
    return super().render(request)

else:
    return redirect(self.next)  # Return here
4

1 回答 1

2

您应该将不应该引发异常的语句放在 de try/catch 块之外。因此,在您的情况下,版本 1 是最佳解决方案。

于 2019-06-17T12:17:03.490 回答