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

 更新时间:2023年03月28日 14:19:53   作者:算力鬼才信  
本文主要介绍了Python中try excpet BaseException(异常处理捕获)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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)

到此这篇关于Python中try excpet BaseException(异常处理捕获)的使用的文章就介绍到这了,更多相关Python 异常处理捕获内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python cv2在验证码识别中应用实例解析

    python cv2在验证码识别中应用实例解析

    这篇文章主要介绍了python cv2在验证码识别中应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • Python列表对象中元素的删除操作方法

    Python列表对象中元素的删除操作方法

    列表的删操作指的是在列表中删除已存在的元素,列表中的元素被删除后,后面所有的元素依次往前移动一位,挂在被删除元素的索引下,保证每一个索引都有元素,这篇文章主要介绍了Python列表对象中元素的删除操作方法,需要的朋友可以参考下
    2022-12-12
  • Python pyasn库解析和生成ASN.1数据结构

    Python pyasn库解析和生成ASN.1数据结构

    这篇文章主要介绍了Python pyasn库实现ASN.1数据结构的解析和生成实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 使用python实现扫描端口示例

    使用python实现扫描端口示例

    这篇文章主要介绍了使用python实现扫描端口示例,需要的朋友可以参考下
    2014-03-03
  • Pandas DataFrame中实现取单个值的读取和修改

    Pandas DataFrame中实现取单个值的读取和修改

    这篇文章主要介绍了Pandas DataFrame中实现取单个值的读取和修改,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • 使用Python实现优雅生成假数据

    使用Python实现优雅生成假数据

    Faker是一个Python包,开源的GITHUB项目,主要用来创建伪数据,这篇文章主要为大家详细介绍了Python如何使用Faker生成假数据,感兴趣的小伙伴可以了解下
    2023-12-12
  • python常见运算符及用法小结

    python常见运算符及用法小结

    python中的运算符主要包括算术运算符,关系(比较)运算符,赋值运算符,逻辑运算符,成员运算符,身份运算符,三目运算符。使用运算符将不同类型的数据按照一定的规则连接起来的式子,称为表达式。下面将介绍一些常用的运算符
    2022-08-08
  • python调用golang中函数方法

    python调用golang中函数方法

    由于simhash方法有多种实现方式,现python中simhash方法与golang中的不一样,需要两者代码生成结果保持一致,故采用python中的代码调用golang编译的so文件来实现,需要的朋友可以参考下
    2024-02-02
  • python用tkinter实现一个gui的翻译工具

    python用tkinter实现一个gui的翻译工具

    这篇文章主要介绍了python用tkinter实现一个gui的翻译工具,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 +
    2020-10-10
  • Python pandas删除指定行/列数据的方法实例

    Python pandas删除指定行/列数据的方法实例

    这篇文章主要给大家介绍了关于Python pandas删除指定行/列数据的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01

最新评论