我应该在哪里放置 try/except 块的返回语句



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

版本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

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

最新更新