Python异常(Bug)捕获与处理

        直接上干货,至于异常是什么不再解释。

1. try-except

        第一种最简单的方式:

try:
    # 需要执行的语句
    a = 1 /0    # 用0做除数,模拟异常
except: 
    # 捕获try中的异常,并做处理
    print("有BUG")

       程序会先执行try语句中的内容,如果try语句中有错误,程序会将异常抛给except,执行except语句,而不是报错或终止运行。

        例:如果直接执行a = 1 / 0,终端会显示:

        表示有一个ZeroDivisionError异常,意思是0做除数异常。

        运行第一种方式的代码,添加了一些语句帮助理解:

 2. 获取全部异常信息

        第二种,获取异常信息:

try:
    print("try语句开始执行")

    # 需要执行的语句
    a = 1 /0    # 用0做除数,模拟异常

    print("try语句结束执行")

# 捕获try中的异常,并将异常信息赋值给变量e
except Exception as e: 
    print("遇到以下异常")
    print(e)

        这里将所有类型的异常信息使用Exception全部捕获(其实第1部分中的except也是捕获全部异常),并将其赋给变量e,为什么说是所有异常?可以查看第3部分。

 

3. 捕获部分异常信息

3.1 捕获一种异常

try:
    print("try语句开始执行")

    # 需要执行的语句
    a = 1 /0                     # 用0做除数,模拟异常


    print("try语句结束执行")

# 捕获try中的ZeroDivisionError异常,并将异常信息赋值给变量e
except ZeroDivisionError as e: 
    print("遇到异常")
    print(e)

3.2 捕获多种异常:

        与3.1类似, 用元组表示

try:
    print("try语句开始执行")

    # 用0做除数,模拟异常
    a = 1 /0                     
    # 用只读模式打开一个不存在的文件,模拟异常
    f = open("这是一个不存在的文件.txt", "r")    

    print("try语句结束执行")

# 捕获try中的ZeroDivisionError和FileNotFoundError 异常,并将异常信息赋值给变量e
except (ZeroDivisionError,FileNotFoundError ) as e: 
    print("遇到异常")
    print(e)

 4. 更完整的try语句

        如下:

try:
    # 需要执行的语句
except: 
    # try中有异常,执行
    print("遇到异常了")
else:
    # try中没有异常时执行的语句
    print("无异常")
finally:
    # 不论有无异常,都执行
    print("程序执行结束")

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Python提督道(Pythonic)地解决bug时,我们遵循一些原则和实践来提高代码的可读性、可维护性和可扩展性。 首先,我们应尽可能使用Python的内置函数和库来解决问题,而不是重复造轮子。Python提供了许多功能强大的内置函数和模块,如`os`、`sys`、`re`等,它们提供了许多用于处理文件、系统、正则表达式等常见任务的函数。同时,Python还提供了许多标准库,如`datetime`、`json`等,它们提供了处理日期时间、JSON等常见任务的函数和类。因此,在解决bug时,我们应首先查看Python官方文档,探索是否有现成的解决方案可用。 其次,我们应充分利用Python异常处理机制来捕获处理bugPython提供了`try-except`结构,它能够捕获代码中可能出现的错误并进行相应的处理。在处理bug时,我们应该使用`try-except`块来尽量捕获处理异常,以避免程序崩溃或产生不可预测的结果。同时,我们还可以使用`finally`关键字来确保无论是否发生异常,都能执行必要的清理工作。 此外,Python还支持面向对象编程(OOP),我们可以使用类和对象来组织和封装代码,以提高代码的可重用性和可维护性。在解决bug时,我们可以使用OOP的思想来设计和实现自定义的异常类、封装复杂逻辑的类等,以提高代码的可读性和扩展性。 最后,为了尽量避免和减少bug的产生,我们应遵循一些良好的编码风格和规范,如PEP 8,它提供了Python编码的指导原则。良好的编码风格和规范能够使我们的代码更加整洁、易读,并减少潜在的bug。同时,我们还可以使用一些静态代码分析工具来检测常见的错误和潜在的问题,如PyLint、Flake8等。 总之,使用Python提禅道bug意味着我们要充分利用Python的内置函数和模块、异常处理机制、面向对象编程等特性,同时遵循良好的编码风格和规范,以提高代码的质量和可维护性,从而高效地解决bug

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值