41_exception.py 695 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. class A:
  2. def __getitem__(self, i):
  3. raise KeyError(i)
  4. try:
  5. a = A()
  6. b = a[1]
  7. exit(1)
  8. except:
  9. pass
  10. try:
  11. a = {'1': 3, 4: None}
  12. x = a[1]
  13. exit(1)
  14. except:
  15. pass
  16. assert True
  17. def f():
  18. try:
  19. raise KeyError('foo')
  20. except A: # will fail to catch
  21. exit(1)
  22. except:
  23. pass
  24. assert True
  25. f()
  26. def f1():
  27. try:
  28. assert 1 + 2 == 3
  29. try:
  30. a = {1: 2, 3: 4}
  31. x = a[0]
  32. except A:
  33. exit(1)
  34. except B:
  35. exit(1)
  36. exit(1)
  37. try:
  38. f1()
  39. exit(1)
  40. except KeyError:
  41. pass
  42. assert True, "Msg"
  43. try:
  44. assert False, "Msg"
  45. exit(1)
  46. except AssertionError:
  47. pass