# 语法错误和异常 # 语法错误 # while True: # print('--------') # # number = 100 def func(): global number number += 1 # 异常:程序运行的时候报出来的,xxxError def chu(a, b): return a / b # chu(1, 0) x = chu(4, 2) print('------>', x) # 异常处理: ''':cvar try: 可能出现异常的代码 except: 如果有异常执行的代码 [finally: (可选)无论是否存在异常都会被执行的代码] 情况1: try: 有可能产生多种异常 except 异常类型: print() except Exception: pass 如果是多个except,异常类型的顺序需要注意,最大的Exception需要放到最后 情况2:获取Exception的错误原因 ''' def func(): try: n1 = int(input('输入第一个数字:')) n2 = int(input('输入第二个数字')) # 加法 per = input('输入运算符号(+-*/)') result = 0 if per == '+': result = n1 + n2 elif per == '-': result = n1 - n2 elif per == '*': result = n1 * n2 elif per == '/': result = n1 / n2 else: print('符号输入错误!') print('结果是:', result) # 操作列表 list1 = [] list1.pop() # except: # print('存在问题') except ZeroDivisionError: print('除数不能为0!') except ValueError: print('必须输入数字!!!') except Exception as err: print('出错啦!', err) # --->err的内容就是错误的原因 func()
-------------------------------------------------------
# 异常情况4: ''':cvar # 文件操作 stream = open() stream.read() stream.close() try: pass except: pass finally: pass ''' def func(): stream = None try: stream = open(r'C:\Users\RSB\Desktop\Python文件夹\p1\aa.txt') container = stream.read() print(container) return 1 except Exception as err: print(err) return 2 finally: print('---finally---') if stream: stream.close() return 3 func() x = func() print(x)
------------------------------------------------------------------------------
# 抛出异常 raise # 注册 用户名必须6位 def register(): username = input('输入用户名:') if len(username) < 6: raise Exception('用户长度必须6位以上') else: print('输入的用户名:', username) try: register() except Exception as err: print(err) print('注册失败') else: print('注册成功')