mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			97 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| # Python test set -- part 5, built-in exceptions
 | |
| 
 | |
| from test_support import *
 | |
| from types import ClassType
 | |
| 
 | |
| print '5. Built-in exceptions'
 | |
| # XXX This is not really enough, each *operation* should be tested!
 | |
| 
 | |
| def r(thing):
 | |
|     if type(thing) == ClassType:
 | |
|         print thing.__name__
 | |
|     else:
 | |
|         print thing
 | |
| 
 | |
| r(AttributeError)
 | |
| import sys
 | |
| try: x = sys.undefined_attribute
 | |
| except AttributeError: pass
 | |
| 
 | |
| r(EOFError)
 | |
| import sys
 | |
| fp = open(TESTFN, 'w')
 | |
| fp.close()
 | |
| fp = open(TESTFN, 'r')
 | |
| savestdin = sys.stdin
 | |
| try:
 | |
|         try:
 | |
|                 sys.stdin = fp
 | |
|                 x = raw_input()
 | |
|         except EOFError:
 | |
|                 pass
 | |
| finally:
 | |
|         sys.stdin = savestdin
 | |
|         fp.close()
 | |
| 
 | |
| r(IOError)
 | |
| try: open('this file does not exist', 'r')
 | |
| except IOError: pass
 | |
| 
 | |
| r(ImportError)
 | |
| try: import undefined_module
 | |
| except ImportError: pass
 | |
| 
 | |
| r(IndexError)
 | |
| x = []
 | |
| try: a = x[10]
 | |
| except IndexError: pass
 | |
| 
 | |
| r(KeyError)
 | |
| x = {}
 | |
| try: a = x['key']
 | |
| except KeyError: pass
 | |
| 
 | |
| r(KeyboardInterrupt)
 | |
| print '(not testable in a script)'
 | |
| 
 | |
| r(MemoryError)
 | |
| print '(not safe to test)'
 | |
| 
 | |
| r(NameError)
 | |
| try: x = undefined_variable
 | |
| except NameError: pass
 | |
| 
 | |
| r(OverflowError)
 | |
| x = 1
 | |
| try:
 | |
|         while 1: x = x+x
 | |
| except OverflowError: pass
 | |
| 
 | |
| r(RuntimeError)
 | |
| print '(not used any more?)'
 | |
| 
 | |
| r(SyntaxError)
 | |
| try: exec '/\n'
 | |
| except SyntaxError: pass
 | |
| 
 | |
| r(SystemError)
 | |
| print '(hard to reproduce)'
 | |
| 
 | |
| r(SystemExit)
 | |
| import sys
 | |
| try: sys.exit(0)
 | |
| except SystemExit: pass
 | |
| 
 | |
| r(TypeError)
 | |
| try: [] + ()
 | |
| except TypeError: pass
 | |
| 
 | |
| r(ValueError)
 | |
| try: x = chr(10000)
 | |
| except ValueError: pass
 | |
| 
 | |
| r(ZeroDivisionError)
 | |
| try: x = 1/0
 | |
| except ZeroDivisionError: pass
 | |
| 
 | |
| unlink(TESTFN)
 | 
