message: Guard the function return flag with a try/except flag so that it retains its integrity when an exception is raised from the return value expression.
diff: @@ -231,9 +231,15 @@ class ReturnStatementsTransformer(converter.Base):
  retval = node.value if node.value else parser.parse_expression('None')
  + # Note: If `return <expr> raises, then the return is aborted.
  + # The try-catch below ensures the variables remain consistent in that case.
  template = """
  + try:
  do_return_var_name = True
  retval_var_name = retval
  + except:
  + do_return_var_name = False
  + raise
  """
  node = templates.replace(
  template,
  