try: fh = open("testfile", "w") fh.write("这是一个测试文件,用于测试异常!!")except IOError: print("Error: 没有找到文件或读取文件失败")else: print("内容写入文件成功") fh.close()输出
内容写入文件成功注:
异常类只能用来处理指定的异常情况,如果非指定异常则无法处理 。(异常是由程序的错误引起的,语法上的错误跟异常处理无关,必须在程序运行前就修正)
# 未捕获到异常,程序直接报错s1 = 'hello'try: int(s1)except IndexError as e: print e输出File "/Users/hexin/PycharmProjects/py3/day9/1.py", line 11 print e ^SyntaxError: Missing parentheses in call to 'print'多分支
try: msg=input('>>:') int(msg) #ValueError # # print(x) #NameError # # # # l=[1,2] # # l[10] #IndexError # # 1+'asdfsadfasdf' #TypeError except ValueError as e: print(e)except NameError: print('NameError')except KeyError as e: print(e)>>:gginvalid literal for int() with base 10: 'gg'万能异常
在python的异常中,有一个万能异常:Exception,他可以捕获任意异常
s1 = 'hello'try: int(s1)except Exception as e: '丢弃或者执行其他逻辑' print(e)输出
invalid literal for int() with base 10: 'hello'try-finally 语句
try-finally 语句无论是否发生异常都将执行最后的代码 。
s1 = 'hello'try: int(s1)except IndexError as e: print(e)except KeyError as e: print(e)except ValueError as e: print(e)#except Exception as e:# print(e)else:print('try内代码块没有异常则执行我')finally: print('无论异常与否,都会执行该模块,通常是进行清理工作')输出
invalid literal for int() with base 10: ‘hello’
无论异常与否,都会执行该模块,通常是进行清理工作
raise主动触发异常
我们可以使用raise语句自己触发异常
raise语法格式如下:
raise [Exception [, args [, traceback]]]语句中Exception是异常的类型(例如,NameError)参数是一个异常参数值 。该参数是可选的,如果不提供,异常的参数是”None” 。
最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象 。
try: raise TypeError('类型错误')except Exception as e: print(e)输出
类型错误自定义异常
class hexinException(BaseException): def __init__(self,msg): self.msg=msg def __str__(self): return self.msgtry: raise hexinException('类型错误')except hexinException as e: print(e)输出
类型错误
以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!
「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助:- 学python需要的基础知识 python教学设计
- 哪个培训班靠谱?想要培训Java的应该如何选择? 程序员编程培训
- 自学java坚持不下去了,要找Java培训机构吗 程序员编程培训
- 程序员如何快速工资翻倍 程序员编程培训
- 月薪3万的程序员,脱单这么难 程序员编程培训
- 你做 Java 程序员真的是因为热爱吗? 程序员编程培训
- IT编程软件培训学校有哪些可以选择 程序员编程培训
- 编程培训班一般要多少钱 程序员编程培训
- 成都软件开发培训班哪家好 程序员编程培训
- 数据分析用python还是bi powerbi使用教程