一、学前花絮

Python的学习,我们已经输出了30篇文章。从基础知识学起,到现在已经学会了条件控制、循环控制、函数和类/对象的使用等知识。应该说有了这些知识,我们完全可以承担起一个软件工程了。

但在实际项目中,除了注解、注释为了让程序更加可读之外,还有一项工作是为了让程序更健壮。什么意思呢?比如你写一个A除以B的程序,正常输入的时候可以让除数不为0,而一个程序不止是一个用户使用。当出现除数是0的情况怎么办呢?

如果你的程序没有对这种错误或异常进行处理,那么就被认为不是一个好的程序。好的程序要考虑到方方面面的情况。

二、Python3 错误和异常

在 Python 中,错误(Error) 和 异常(Exception) 都是程序执行过程中出现的问题,但它们有不同的含义和处理方式。

2.1 错误(Error) vs 异常(Exception)

1.错误(Error)

通常是更严重的问题,一般是系统级或语法问题,程序无法恢复。

2.异常(Exception)

程序运行期间出现的错误,可以被捕获和处理。

# 常见的异常类型

# ZeroDivisionError: 除数为零

# ValueError: 值错误

# TypeError: 类型错误

# IndexError: 索引错误

# KeyError: 键错误

# FileNotFoundError: 文件未找到

2.2 异常处理机制

基本的 try-except 块

使用try-except处理异常

输出如下:

输出结果

捕获所有异常:

捕获异常

输出结果:

输出结果

2.3 完整的异常处理结构

完整的异常处理结构

# 测试

read_file(‘example.txt’)

read_file(‘nonexistent.txt’)

输出结果:

输出结果

2.4 自定义异常

用类自定义异常

自定义异常类的使用

Python学习【30】:Python3 错误和异常,附实例说明

输出结果:

输出结果

2.5 抛出异常(raise)

抛出异常

测试验证

输出结果:

输出结果

2.6 上下文管理器与异常处理

定义数据库连接类

使用with管理异常

输出结果:

输出结果

三、小结

通过以上的学习,我们对Python错误和异常处理有了比较完整的认识。应该说,没有异常处理的程序是不完整的,或者说不专业的。好的程序,一定要考虑多种可能出错的因素,并对可能出现的错误和异常提前进行规划处理。

Python 的异常处理机制提供了:

  • try-except: 捕获和处理异常
  • else: 没有异常时执行
  • finally: 无论是否异常都执行
  • raise: 主动抛出异常

自定义异常: 创建特定领域的异常类型。

通过合理的异常处理,可以使程序更加健壮和用户友好。

让我们保持学习热情,多做练习。我们下期再见!

快乐男孩