>我有以下尝试/除了块。由于 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是最佳解决方案。