python入门19 异常及异常处理 异常捕获

您所在的位置:网站首页 python异常捕获和处理 python入门19 异常及异常处理 异常捕获

python入门19 异常及异常处理 异常捕获

#python入门19 异常及异常处理 异常捕获| 来源: 网络整理| 查看: 265

 

常见异常举例

""" 一些异常举例:""" '''模块不存在 ModuleNotFoundError: No module named 'data' ''' #import data1 '''索引越界 IndexError: list index out of range ''' li = [1,2] #li[3] '''key不存在 KeyError: 'a' ''' dict1 = {} #dict1['a'] ''' NameError: name 'a' is not defined ''' #a #未定义的变量 '''缩进错误 IndentationError: expected an indented block ''' # if 1: # return True #缩进错误 '''语法错误 SyntaxError: invalid syntax ''' #def fund x: return x ''' 类型错误 TypeError: can only concatenate str (not "int") to str ''' #'a' + 2 ''' 除数为0 ZeroDivisionError: division by zero''' #2/0 ''' 递归错误 未设置跳出条件 RecursionError: maximum recursion depth exceeded ''' # def f(x): # return f(x) # f(1)

 

异常捕获 try except finally

"""异常捕获 try(可能发生异常的语句) except(发生异常后处理) else(没有发生异常后执行的语句) finally(不管有无异常都要继续执行的语句) 不捕获,发生异常后后程序会中断执行。捕获异常,可根据异常进行处理 """ #捕获一种特定异常 try: x = 10/0 print('x=',x) #异常后的不执行 except ZeroDivisionError: print('除数不能为零') #发生异常后执行的部分 else: print('没有除数异常') #没有发生异常后执行 finally: x = 0 print('finally') #不管有无异常均一定会执行的部分

 

#捕获多种异常 try: a x = 10/0 except (ZeroDivisionError,NameError): print('出错了') #发生异常后执行的部分

 

#捕获任何类型的异常 import traceback try: x = 10/0 a except BaseException as e: print(e) #仅显示异常信息 traceback.print_exc() #显示错误所在详细的堆栈信息 print('后续程序继续执行')

 

抛出异常raise 

"""抛出异常 raise 错误类型(错误信息)""" name = 'abc' if len(name)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3