鱼C论坛

 找回密码
 立即注册
查看: 1762|回复: 13

[已解决]异常问题

[复制链接]
发表于 2021-4-16 16:20:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
try...except
这个语句是捕捉异常的,但是有什么用呢?
最佳答案
2021-4-16 16:40:52
比如说


  1. number = int(input("请输入一个整数:"))
复制代码


  1. try:
  2.     number = int(input("请输入一个整数:"))
  3. except Exception as e:
  4.     print("输入错误!")
复制代码


这两个代码,是输入整数后直接转int类型
但是如果你输入了一个小数  比如 2.3
那么第一个代码就会崩溃
而第二个代码会提示用户输入错误且程序会正常退出,而不是直接崩溃
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-16 16:38:09 From FishC Mobile | 显示全部楼层
如果程序有问题,不处理就是报错,就会终止程序
处理后就不算报错,可以根据你的想法继续执行(比如打印提醒:出错了)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-16 16:39:05 From FishC Mobile | 显示全部楼层
然后继续执行出错情况下该执行的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-16 16:40:52 | 显示全部楼层    本楼为最佳答案   
比如说


  1. number = int(input("请输入一个整数:"))
复制代码


  1. try:
  2.     number = int(input("请输入一个整数:"))
  3. except Exception as e:
  4.     print("输入错误!")
复制代码


这两个代码,是输入整数后直接转int类型
但是如果你输入了一个小数  比如 2.3
那么第一个代码就会崩溃
而第二个代码会提示用户输入错误且程序会正常退出,而不是直接崩溃
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-16 16:44:25 | 显示全部楼层
本帖最后由 yuxijian2020 于 2021-4-16 17:07 编辑

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

正常开发中,比如说爬取网页信息的时候,你会通过网页标签名找到你需要的信息
但是如果存在网页没有这个标签,那么没有异常处理的程序没有获取到标签就进行解析操作会直接崩溃
而有异常处理的程序则会正常运行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

  1. try:
  2.     number = int(input("请输入一个整数:"))
  3. except Exception as e:
  4.     print("输入错误!")
复制代码

一般正常用户就是输入一个整数,程序可以正常运行,万一客户脑抽,输入其他类型的数字呢?就会发生报错,这个是预期内的错误。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-17 21:30:48 | 显示全部楼层

你这个except 语句为什么要加as e 啊?什么意思啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-17 21:31:18 | 显示全部楼层
Stubborn 发表于 2021-4-16 16:51
知道某一块代码语句一定会在某一次运行出现预期内的或者预期外的处理,需要进行捕捉或者处理

谢谢啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-17 21:32:12 | 显示全部楼层
江湖散人 发表于 2021-4-17 21:30
你这个except 语句为什么要加as e 啊?什么意思啊?


把捕获到的异常转化为字符串变量,用于输出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-17 21:33:22 | 显示全部楼层
yuxijian2020 发表于 2021-4-17 21:32
把捕获到的异常当做变量,用于输出

不用这个行不行啊?我试了一下,删除了这个,也没问题啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-17 21:35:27 | 显示全部楼层
江湖散人 发表于 2021-4-17 21:33
不用这个行不行啊?我试了一下,删除了这个,也没问题啊

不需要提示用户是什么错误的话,不用也可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-4-17 21:37:39 | 显示全部楼层
yuxijian2020 发表于 2021-4-17 21:35
不需要提示用户是什么错误的话,不用也可以

那要是需要告诉呢?该怎么办呢?直接print (e)?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-4-17 21:37:58 | 显示全部楼层
江湖散人 发表于 2021-4-17 21:33
不用这个行不行啊?我试了一下,删除了这个,也没问题啊

2.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 07:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表