江湖散人 发表于 2021-4-16 16:20:38

异常问题

try...except
这个语句是捕捉异常的,但是有什么用呢?

昨非 发表于 2021-4-16 16:38:09

如果程序有问题,不处理就是报错,就会终止程序
处理后就不算报错,可以根据你的想法继续执行(比如打印提醒:出错了)

昨非 发表于 2021-4-16 16:39:05

然后继续执行出错情况下该执行的代码

yuxijian2020 发表于 2021-4-16 16:40:52

比如说


number = int(input("请输入一个整数:"))



try:
    number = int(input("请输入一个整数:"))
except Exception as e:
    print("输入错误!")


这两个代码,是输入整数后直接转int类型
但是如果你输入了一个小数比如 2.3
那么第一个代码就会崩溃
而第二个代码会提示用户输入错误且程序会正常退出,而不是直接崩溃

yuxijian2020 发表于 2021-4-16 16:44:25

本帖最后由 yuxijian2020 于 2021-4-16 17:07 编辑

当然我这是最浅显的,只是为了让你懂

正常开发中,比如说爬取网页信息的时候,你会通过网页标签名找到你需要的信息
但是如果存在网页没有这个标签,那么没有异常处理的程序没有获取到标签就进行解析操作会直接崩溃
而有异常处理的程序则会正常运行

Stubborn 发表于 2021-4-16 16:51:22

知道某一块代码语句一定会在某一次运行出现预期内的或者预期外的处理,需要进行捕捉或者处理

try:
    number = int(input("请输入一个整数:"))
except Exception as e:
    print("输入错误!")
一般正常用户就是输入一个整数,程序可以正常运行,万一客户脑抽,输入其他类型的数字呢?就会发生报错,这个是预期内的错误。

江湖散人 发表于 2021-4-17 21:30:48

yuxijian2020 发表于 2021-4-16 16:40
比如说




你这个except 语句为什么要加as e 啊?什么意思啊?

江湖散人 发表于 2021-4-17 21:31:18

Stubborn 发表于 2021-4-16 16:51
知道某一块代码语句一定会在某一次运行出现预期内的或者预期外的处理,需要进行捕捉或者处理




谢谢啊

江湖散人 发表于 2021-4-17 21:31:49

昨非 发表于 2021-4-16 16:38
如果程序有问题,不处理就是报错,就会终止程序
处理后就不算报错,可以根据你的想法继续执行(比如打印提 ...

谢谢啊

yuxijian2020 发表于 2021-4-17 21:32:12

江湖散人 发表于 2021-4-17 21:30
你这个except 语句为什么要加as e 啊?什么意思啊?

把捕获到的异常转化为字符串变量,用于输出

江湖散人 发表于 2021-4-17 21:33:22

yuxijian2020 发表于 2021-4-17 21:32
把捕获到的异常当做变量,用于输出

不用这个行不行啊?我试了一下,删除了这个,也没问题啊

yuxijian2020 发表于 2021-4-17 21:35:27

江湖散人 发表于 2021-4-17 21:33
不用这个行不行啊?我试了一下,删除了这个,也没问题啊

不需要提示用户是什么错误的话,不用也可以

江湖散人 发表于 2021-4-17 21:37:39

yuxijian2020 发表于 2021-4-17 21:35
不需要提示用户是什么错误的话,不用也可以

那要是需要告诉呢?该怎么办呢?直接print (e)?

yuxijian2020 发表于 2021-4-17 21:37:58

江湖散人 发表于 2021-4-17 21:33
不用这个行不行啊?我试了一下,删除了这个,也没问题啊

页: [1]
查看完整版本: 异常问题