Python中try excpet BaseException(异常处理捕获)的使用
作者:算力鬼才信 发布时间:2023-07-30 16:21:37
try ...except 是最常见的捕获处理异常的结构,其主要作用是将可能出现问题的代码块用try :包裹起来,不至于出现错误让程序崩溃,无法执行下去
常见的try ...excpet 的结构有三种
try:
pass
except BaseException as e :
异常处理模块
try 中包含着可能发生异常的程序代码,except 块中包含着,发生异常后,用来捕获异常和处理异常代码
如果在try包含的模块中发生了异常则会跳转到 except的模块中,去执行 except中的代码,excpet中的模块会处理异常,如果没有发生异常,则程序不会执行except中的代码。
书写了一段用于测试会报错的代码块
try:
test = eval(str(input("请输入一个字符串: ")))
tests = test + "This is a piece of test code"
except BaseException as e:
print("出现的错误可能是%s"%e)
print("这是一段测试输出")
错误提示: unsupported operand type(s) for +: 'int' and 'str'
不支持 :数据类型:“int”和“str”拼接(+)操作
一段正确的代码输入:
try:
test = str(input("请输入一个字符串: "))
tests = test + " "+"This is a piece of test code"
print("输入正确的内容则会执行的代码块:",tests)
except BaseException as e:
print("出现的错误可能是%s"%e)
print("这是一段测试输出")
字是不允许和字符串拼接的只有把数字转换成字符串才允许拼接。
这是一段没有用try except:处理的有问题代码块
如果不用try...except... :对可能出现的代码进行包裹,程序就会崩溃,影响后续代码进行
test = int(input("请输入一个字符串: "))
tests = test + " "+"This is a piece of test code"
print("这是一段测试输出")
多个except 语句、
如果写入的代码出错类型不太清楚,可以多写几个捕获异常语句,记得在最后加上一个except BaseException 用来做兜底操作(假如出现的错误都不是你用except 捕获的异常你可以用它来兜底),它是所有异常的父类包含了所有常见的异常
arr = {
"xiaomi":"123",
"xiaozhang":"456",
"xiaodede":"7,8,9"
}
arrs = (1,2,3,4,5)
try:
3 / 0
print(arrs[6])
except IndexError :
print('导入包失败')
except KeyError :
print('在字典中找不到指定的键')
except ImportError :
print("索引时没有找到指定序列")
#兜底捕获错误,BaseException 是所有错误的父类可以说是包含了所有常见的错误
except BaseException as e:
print(arr["mayuanyuan"])
print(e)
上述操作和下面的操作表达的功能是一致的,你也可以将所有可能出现的异常写在一个 except 中,异常和异常之间 用逗号隔开
arr = (1,2,3,4,5)
try:
int("3.1415926")
print(add) # 未定义
print(arr[6]) #超出索引
except (IndexError,NameError,ValueError)as e:
print(e)
3 try... except... esle
如果try 中包含的代码块没有异常,则会接着执行else 中的语句,不会去执行 excpet中的代码块(这段代码只有try中的代码块抛出异常时,则会使用except去捕获)
try:
arr = int(input("请输入一个整数: "))
except BaseException as e:
print(e)
else:
arrs = arr + 111
print(arrs)
print("测试结束")
异常处理模块就讲到到这里了,我要谈到关于异常处理模块try except实际用途,有的博主会谈一些简单的案例,可能有的同学对这个模块认识的并不是很深入,为什么呢?
try:
4 /0
except BaseException as e:
print(e)
报错: division by zero
明明你知道是,除零操作,你为什么不改呢?有的错误你明明知道什么?故意把错误写出来,难道就是为了测试错误吗?
所以经过我的考虑给了大家一个好玩的
登录密码案例的操作,如果密码输入正确,则会提示登录成功,错误的话则会继续输入,错误输入大于三次时就会提示:"输入错误次数过多密码已锁定“
i = 0
while True:
if i == 3:
print("输入错误次数过多密码已锁定")
break
try:
Divisor = str(input("请输入一个整数: "))
# A = Divisor/1
# B = A+1 #如果输出有误就不会执行加1操作直接跳到 except当中
# print("结果是:",B)
mima = 'ma123'
if Divisor == mima:
i = i+1
print("登录成功,输入%s次"%i)
break
except:
i = i+1
print("密码输入错误请重新输入:")
print("登陆了%s次"%i)
这是关于“try... except... esle ”具有实际用途的一段代码
提示你输入密码,然后根据密码的内容进行适当的加密,拼接
md5 = []
try:
Divisor = str(input("请输入你的密码: "))
except:
print("密码输入错误")
else:
for i in Divisor:
if i == 1:
i = "a"
else:
i == 2
i = "b"
md5.append(i)
MD5 = Divisor + md5[0]
print("经过加密后的数据%s"%MD5)
来源:https://blog.csdn.net/weixin_59131972/article/details/129793896


猜你喜欢
- 本文通过一个csv实例文件来展示如何删除Pandas.DataFrame的行和列数据文件名为:example.csv内容为:datespri
- 本文实例总结了JS常见简单正则表达式验证功能。分享给大家供大家参考,具体如下:下面都是一些比较常用简单的验证,像那些特殊的复杂的情况这里不进
- 前言:由于ES6到ES7增加了很多新的语法,新特性的出现使得大家都希望通过新语法来提升自身的开发效率,但在之前的最新的node可能也没有百分
- 一、需求说明:数据库的备份,对于生产环境来说尤为重要,数据库的备份分为物理备份和逻辑备份。物理备份:使用相关的复制命令直接将数据库的数据目录
- 最近,Node.js 和 Python 都因其广泛的特性和功能在市场上大受欢迎。在你开发Web应用程序的后端时,这两种技术都是你的首选。众所
- 一.序单从库名大概就能猜出其作用。sync.Once使用起来很简单, 下面是一个简单的使用案例package mainimport (&qu
- 本文实例讲述了Python2比较当前图片跟图库哪个图片相似的方法。分享给大家供大家参考,具体如下:# -*- coding: utf-8 -
- 变量插入字符串的方法Python中的format()函数是一种将变量插入字符串的方法,能够使字符串更易于阅读和理解。它支持许多不同的用法,以
- IE6绝对定位的bug及其解决办法。position:absolute定位在IE6下存在left和bottom的定位错误问题:<!–I
- PHP 是世界上最好的语言。经典的 LNMP(linux + nginx + php + mysql)环境有很多现成的部署脚本,但是在 Do
- Keras运行迭代一定代数以后,速度越来越慢,经检查是因为在循环迭代过程中增加了新的计算节点,导致计算节点越来越多,内存被占用完,速度变慢。
- 在使用python通过open()函数来打开文件的时候,传递绝对路径给open()的时候,发现路径参数的内容与想象中的有所出入:由于wind
- 注:所谓n位数“水仙花数”是指一个n数,其各位数字n次方和等于该数本身。如三位数“水仙花数”是指一个三位数,其各位数3次方和等于该数本身。一
- 事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。比如说,在人员管理系统中,你删除一个人员
- Dreamweaver快捷键大全,记住一些常用的快捷键会大大提高你的网页设计效率,如果你都使用快捷键,那么如果你去面试工作就容易被录取,呵呵
- MNIST 数据集介绍MNIST 包含 0~9 的手写数字, 共有 60000 个训练集和 10000 个测试集. 数据的格式为单通道 28
- INSERT INTO hk_test(username, passwd) VALUES('qmf1', 'qmf1
- 尽管XML还处在开发阶段,其标准正在由W3C组织制定,但是已经有许多公司表示全力支持XML,并开发了不少XML工具。Adobe公司的Fram
- 本文实例讲述了Flask框架通过Flask_login实现用户登录功能。分享给大家供大家参考,具体如下:通过Flask_Login实现用户验
- Mysql参数优化对于新手来讲,是比较难懂的东西,其实这个参数优化,是个很复杂的东西,对于不同的网站,及其在线量,访问量,帖子数量,网络情况