python显示抛出异常的语句(python中常见的错误提示)

在Python中导致程序无法运行的有2种情况。

1;语法错误,这是致命错误,需要重新查看代码进行修改,比如:缩进问题,比如关键字错误。

2;程序异常,这不是致命错误,我们可以捕获它。

在Python中处理异常是用try – except代码代码块来处理的。

学习这章的目的是:告诉Python发生异常时怎么办。使用try-except代码块后,即便出现异常,程序也将继续运行:我们可以编写的友好的错误消息,而不是令用户迷惑的traceback。

举个例子:

python显示抛出异常的语句(python中常见的错误提示)

zeroDivisionError: integer division or modulo by zero

大概意思是说;除数不能为0.

如何通过try – except,捕获这个异常,并且不会出现程序异常呢?

def ceshi(a,b):
    return a//b

b=int(input('请输入一个除数:'))
a=int(input('请输入一个被除数:'))
try:
    print(ceshi(a,b))
except ZeroDivisionError:
    print('除数不能为0')
python显示抛出异常的语句(python中常见的错误提示)

这样来看,就算除数输入0,也不会出现异常,不过还有一个问题,就是程序结束了,应该要让用户知道不能输入0之后,能输入其他数才对。加入一个while循环 和 退出条件完善一下:

def ceshi(a,b):
    return a//b

while True:
    b = input('请输入一个除数:')
    if b =='退出':
        break
    else:
        a = int(input('请输入一个被除数:'))
        b = int(b)
        try:
            print(ceshi(a,b))
        except ZeroDivisionError:
            print('除数不能为0')

现在需要思考另外一个问题了,就是except 后面到底应该跟什么内容呢?我发现后面可以跟很多内容,都是大写字母开头的,我们可能需要记得少部分,但不需要全部去记忆,可以当发生异常的时候,把异常的第一段加入进去 即可。再看一个例子:

我想读取一个不存在的文件,Python抛出了异常:FileNotFoundError。现在我可以利用这个异常,捕获它,然后提醒用户;

python显示抛出异常的语句(python中常见的错误提示)

FileNotFoundError。现在我可以利用这个异常,捕获它,然后提醒用户;

dizhi ="/Users/xuxizhi/Desktop/Python523.txt"
try:
    with open(dizhi,'r',encoding='utf-8')as a:
        a.write('我想用只读的方式打开这个文件,但现在这个文件不存在,应该会出现异常')
except FileNotFoundError:
    print(f"提醒~提醒~{dizhi}不存在,无法读取")
python显示抛出异常的语句(python中常见的错误提示)

那是不是任何的异常都可以捕获呢?我们多试试。

python显示抛出异常的语句(python中常见的错误提示)

异常的开头是:ValueError 我们来试试捕获它。

python显示抛出异常的语句(python中常见的错误提示)

在实际运用中,客户的输入总是会出现奇怪的情况,为了让程序正常运行,我们需要捕获异常,并且告知客户应该怎么输入才正确,这样可以给到客户良好的体验。

来看下面的案例,比较两个数的大小:1;要求客户输入的是数值,2;并且限定了输入数值的范围(这仅仅是我做试验用的方法)

def ceshi(a, b):
    if a > b:
        return f"{a}比{b}大"
    else:
        return f"{a}比{b}小"

while True:
    try:
        a = int(input('请输入数值a:'))
    except ValueError:
        print('只能输入数值哈 输入其他都没有用')
    else:
        if a > 10:
            print('填入的数值不能大于10')
            continue
        else:
            print('输入正确')
            break

while True:
    try:
        b = int(input('请输入数值b:'))
    except ValueError:
        print('只能输入数值哈 输入其他都没有用')
    else:
        if b > 10:
            print('填入的数值不能大于10')
            continue
        else:
            print('输入正确')
            break

print(ceshi(a, b))
python显示抛出异常的语句(python中常见的错误提示)

我们需要学会这种方法,其目的是让程序能够正常运行并给客户良好的体验,同时也加深我们对可能发生的所有情况都计算在内。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.dasum.com/106641.html