mirror of
				https://github.com/pocketpy/pocketpy
				synced 2025-10-31 08:50:17 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			74 lines
		
	
	
		
			982 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			982 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| try:
 | |
|     for i in range(5):
 | |
|         raise KeyError(i)
 | |
|     exit(1)
 | |
| except KeyError:
 | |
|     pass
 | |
| 
 | |
| x = 0
 | |
| for i in range(5):
 | |
|     try:
 | |
|         for j in range(5):
 | |
|             while True:
 | |
|                 raise KeyError(i)
 | |
|                 x += 3
 | |
|     except KeyError:
 | |
|         x += i
 | |
| assert x == 10
 | |
| 
 | |
| class A:
 | |
|     def __getitem__(self, i):
 | |
|         raise KeyError(i)
 | |
| 
 | |
| try:
 | |
|     a = A()
 | |
|     b = a[1]
 | |
|     exit(1)
 | |
| except:
 | |
|     pass
 | |
| 
 | |
| try:
 | |
|     a = {'1': 3, 4: None}
 | |
|     x = a[1]
 | |
|     exit(1)
 | |
| except:
 | |
|     pass
 | |
| assert True
 | |
| 
 | |
| def f():
 | |
|     try:
 | |
|         raise KeyError('foo')
 | |
|     except A:   # will fail to catch
 | |
|         exit(1)
 | |
|     except:
 | |
|         pass
 | |
|     assert True
 | |
| 
 | |
| f()
 | |
| 
 | |
| def f1():
 | |
|     try:
 | |
|         assert 1 + 2 == 3
 | |
|         try:
 | |
|             a = {1: 2, 3: 4}
 | |
|             x = a[0]
 | |
|         except A:
 | |
|             exit(1)
 | |
|     except B:
 | |
|         exit(1)
 | |
|     exit(1)
 | |
| 
 | |
| try:
 | |
|     f1()
 | |
|     exit(1)
 | |
| except KeyError:
 | |
|     pass
 | |
| 
 | |
| 
 | |
| assert True, "Msg"
 | |
| try:
 | |
|     assert False, "Msg"
 | |
|     exit(1)
 | |
| except AssertionError:
 | |
|     pass
 |