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("这是一段测试输出")

Python中try excpet BaseException(异常处理捕获)的使用

错误提示: 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("这是一段测试输出")

Python中try excpet BaseException(异常处理捕获)的使用

字是不允许和字符串拼接的只有把数字转换成字符串才允许拼接。

这是一段没有用try except:处理的有问题代码块

如果不用try...except... :对可能出现的代码进行包裹,程序就会崩溃,影响后续代码进行

test = int(input("请输入一个字符串: "))
tests = test + " "+"This is a piece of test code"
print("这是一段测试输出")

Python中try excpet BaseException(异常处理捕获)的使用

多个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("测试结束")

Python中try excpet BaseException(异常处理捕获)的使用

异常处理模块就讲到到这里了,我要谈到关于异常处理模块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

标签:Python,异常处理捕获
0
投稿

猜你喜欢

  • 网页设计细节不能丢

    2007-09-26 11:54:00
  • Go json自定义Unmarshal避免判断nil示例详解

    2024-01-29 18:44:24
  • 一个简单的鼠标划过切换效果js源码

    2010-06-21 10:55:00
  • 微信小程序支付前端源码

    2024-06-19 18:58:51
  • PHP三层结构(上) 简单三层结构

    2023-06-20 06:36:07
  • python多线程高级锁condition简单用法示例

    2023-10-31 16:11:23
  • Python读取stdin方法实例

    2022-09-07 19:03:00
  • Golang中异常处理机制详解

    2024-02-17 17:05:50
  • WML初级教程之从实际应用中了解WML

    2008-09-04 11:24:00
  • MySQL使用表锁和行锁的场景详解

    2024-01-24 05:59:39
  • python request post 列表的方法详解

    2023-10-04 11:46:19
  • python的pstuil模块使用方法总结

    2022-10-09 22:47:16
  • 如何利用pygame实现简单的五子棋游戏

    2023-04-12 17:48:03
  • PHP 接入微信扫码支付总结(总结篇)

    2024-05-13 09:53:31
  • 一些Python中的二维数组的操作方法

    2022-10-21 16:14:42
  • 对“关于购物车的想法”的一些回复

    2009-03-10 18:15:00
  • C#实现远程连接ORACLE数据库的方法

    2024-01-16 05:59:20
  • 在ASP.NET 2.0中操作数据之五十二:使用FileUpload上传文件

    2023-07-07 04:19:18
  • SQL Server数据库日志清除的两个方法

    2009-01-08 13:44:00
  • ASP 一次下载网页中的所有资源

    2008-04-18 13:04:00
  • asp之家 网络编程 m.aspxhome.com