old_contents: # nested try's
  
  try:
      print("try 1")
      try:
          print("try 2")
          foo()
      except:
          print("except 2")
      bar()
  except:
      print("except 1")
  
  try:
      print("try 1")
      try:
          print("try 2")
          foo()
      except TypeError:
          print("except 2")
      bar()
  except NameError:
      print("except 1")
  
new_contents: # nested try's
  
  try:
      print("try 1")
      try:
          print("try 2")
          foo()
      except:
          print("except 2")
      bar()
  except:
      print("except 1")
  
  try:
      print("try 1")
      try:
          print("try 2")
          foo()
      except TypeError:
          print("except 2")
      bar()
  except NameError:
      print("except 1")
  
  # Check that exceptions across function boundaries work as expected
  def func1():
      try:
          print("try func1")
          func2()
      except NameError:
          print("except func1")
  
  def func2():
      try:
          print("try func2")
          foo()
      except TypeError:
          print("except func2")
  
  func1()
  
subject: Add testcase with exception handler spread across functions.