1 # while True: print('Hello World!') 2 print('异常有不同的类型,这些类型都作为信息的一部分打印出来:以下例子中的类型有ZeroDivisiongError,NameError和TypeError') 3 # print(10*(1/0)) 4 5 # print(4+spam*3) 6 7 # print('2'+2) 8 9 print('Enter a number,if not give a exception') 10 while True: 11 try: 12 str = int(input('Please enter a number')) 13 # break 14 except ValueError: 15 print('Oops,That was no valid number .Try again ') 16 17 print('except(RuntimeError,ValueError,TypeError,NameError)') 18 import sys 19 try: 20 21 f = open('E:\foo.txt') 22 s = f.readline() 23 i = int(s.strip()) 24 except OSError as err: 25 print('OS error:{}'.format(err)) 26 27 except ValueError: 28 print('Could not conver a data to a integer.') 29 except: 30 print('Unexpected error:',sys.exc_info()[0]) 31 raise 32 33 print('example2----------------------------------------------------------') 34 import sys 35 for foo in sys.argv[1:]: 36 try: 37 f = open(foo,'r') 38 except IOError: 39 print('cannot open',foo) 40 else: 41 print(foo,'has',len(f.readlines()),'lines') 42 f.close() 43 44 print('heheda-------------------------------------') 45 def this_fails(): 46 x = 1/0 47 try: 48 this_fails() 49 except ZeroDivisionError as err: 50 print('Handling run-time error:',err) 51 52 print('hehda-------------------------------------') 53 raise NameError('HiThere') 54 try: 55 raise NameError('HiThere') 56 except NameError: 57 print('An exception flew by!') 58 raise 59 60 print('hehda----------------------------------------------') 61 class MyError(Exception): 62 def __init__(self,value): 63 self.value = value 64 def __str__(self): 65 return repr(self.value) 66 try: 67 raise MyError(2*2) 68 except MyError as e: 69 print('My exception occurred,value:'.format(e.value)) 70 71 print('hehda----------------------------------------------') 72 73 74 class MyError(Exception): 75 def __init__(self, value): 76 self.value = value 77 78 def __str__(self): 79 return repr(self.value) 80 81 try: 82 raise MyError(2 * 2) 83 except MyError as e: 84 print('My exception occurred,value:'.format(e.value)) 85 86 raise MyError('oops!')