我有以下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
答案 0 :(得分:1)
您应该在de try / catch块之外放置不应引发异常的语句。因此,在您的情况下,第2版是最佳解决方案。