程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-05(1)

python自学第七天博客记录 第八章 错误和异常(2/22)

发布于2020-02-24 23:45     阅读(721)     评论(0)     点赞(21)     收藏(4)


8.1 语法错误

在Python中如果错误信息以 “SyntaxErrot” 开头,这就说明这是一个语法错误

8.2异常

程序语法正确,但是在运行中发生一些意向之外的错误。运行时检查到的错误被称为异常

8.3处理异常

(按下ctrl+c 组合键停止程序)

while True:
    try:
        number = int(input("请输入一个数字:"))
    except ValueError:
        print("您输入的不是有效数字!请重试")
  • 1
  • 2
  • 3
  • 4
  • 5

这个程序使用了两个新关键字 : try和except。这两个关键字用于捕获异常并让我们运行相应 的代码去处理异常。typ-except语法如下
try:
业务语法快
except 异常类型:
处理异常语法快

在try业务语法快中,产生任何异常都会终止业务语法快并跳到 except 匹配异常类型。如果匹配的上,则运行处理异常的语法快,否则程序就会报错退出,例如:

while True:
    try:
        number = int(input("请输入一个数字:"))
    except KeyError:
        print("keyError")
    except ValueError:
        print("ValueError")
    except keyboardInterrupt:
        print("用户终止 退出程序")
        exit()
    except Exception as e:
        print("未知错误",e)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

有多个except,那么会逐个匹配except后的异常类型,如果匹配到则运行相应的处理下异常语法快,大部分的异常都是从Exception这个父类继承过来的,如果匹配的异常类型是这个,就总是可以匹配到所有异常。

8.4抛出异常

在Python中我们可以主动抛出异常,可以使用 raise语句 在Python中抛出一个指定异常。如:

raise Exception("这是错误信息")
  • 1

在抛出异常的时候就会有错误提示 在手动抛出异常后 我们可以使用这种方法来提示用户程序哪里出了问题。

8.5 finally子句

Python中 finally子句需要和try子句一起使用。finally子句在异常处理中的作用是:无论是否有 异常或是捕获了异常,finally子句都会保证执行,例如:

try:
    print(1/0)
except ZeroDivisionError:
    print("除0错误")
finally:
    print("finally子句")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

执行结果:
除0错误
finally子句

由此可见 程序在捕获到“ZeroDivisionError”之后任然会执行finally子句中的代码。

try:
    print(1/0)
except ValueError:
    print("除0错误")

finally:
    print("finally子句")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

执行结果:
finally子句
报错:Traceback (most recent call last):
File “D:/python练习/2月18日.py”, line 2, in
print(1/0)
ZeroDivisionError: division by zero

当异常错误时,except并不能捕获相关的异常,程序报错退出,当仍然可以执行finally子句中的代码,无论是否发生异常,finally子句都会被执行。这个特性在数据库和文件处理中相当有用

发布了9 篇原创文章 · 获赞 0 · 访问量 76


所属网站分类: 技术文章 > 博客

作者:mimi

链接:https://www.pythonheidong.com/blog/article/232852/42bd3e07a6567cae9cd5/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

21 0
收藏该文
已收藏

评论内容:(最多支持255个字符)