【python】异常处理及程序调试

简介: 【python】异常处理及程序调试

异常类和异常处理

一、程序的错误类型

语法错误:不符合语法规则而产生的错误,如:标识符命名错误,缩进错误,访问未定义的变量等。这类错误在编辑或解释时就会被检测出来,产生这类错误,程序将会终止,无法运行。
运行中错误:代码编写时没有语法错误,在运行过程中发生错误,例如:除数为0、索引下标越界、数据类型不匹配,要打开的文件不存在等。出现这类错误时,系统会终止程序运行,抛出异常。
逻辑错误:程序设计或代码编写中的逻辑错误,虽然语法都正确,程序也能正常运行,但是运行的结果是错误的。
异常主要是指运行中产生的错误

二、异常和异常类

1.异常概述
导致程序中断运行的错误称为异常(Exception) 异常是一个事件,该事件会在程序执行过程中发生,影响程序的正常执行。当Python程序发生异常时需要捕获处理它,否则程序会终止执行。

2.异常类
Python定义了一些异常类,配合一定的机制在Python中处理程序中的各种异常。这些类的基类都是BaseException。

三、异常处理

Python中使用try-except语句来处理异常。

1.处理格式
try-except语句的格式如下:

try:
代码块

except 异常类型1:

处理异常1

except 异常类型2:

处理异常2

except (异常类型3, 异常类型4):

处理异常3和4

else:

没有异常时执行

finally:

无论是否有异常都执行  

2.简单举例
代码

list1 = [1,1,2,3,5,8]
try:
    print(list1[8])
except IndexError as e:
    print("列表索引超出范围!")

执行结果
image.png

3.整除程序的分类异常处理

x,y = eval(input("请输入两个整数: "))
try:
    z = x / y
    print("z =",z)
except TypeError as e1:
    print("数据类型异常:",e1)
except ZeroDivisionError:
    print("除数为零异常!")
except:
    print("程序运行异常!")
else:
    print("程序执行正确!")

执行结果

image.png

x,y = map(int,input("请输入两个整数: ").split())

image.png

4.异常抛出
抛出异常由raise语句执行,raise的一般格式如下:

raise [Exception [,args [,traceback]]]
1
Exception为异常的类型。
args为用户提供的参数,可选。
traceback跟踪异常对象,可选。
5.异常抛出举例
定义一个函数判定传入的参数是否为大于等于0的整数:如果是,则输出该整数;否则,抛出异常。

代码:

def greaterZero(n):
    if n < 0:
        raise Exception("您传入了一个小于零的整数!")         #抛出异常.
    else:
        print("n =",n)
try:
    x = int(input("请输入一个整数: "))
    greaterZero(x)                         #调用函数.
except Exception as e:
    print(e)

image.png

四、断言语句

1.概述
assert断言语句是一种在程序测试中比较常用的技术,常用于在程序的某个位置判断是否满足某个条件。
assert语句的一般格式为:

assert expression[,arguments]
1
expression是结果为布尔值的表达式。
arguments为参数,一般为错误提示信息,可选。
2.举例

x = -2
assert x >= 0,"x小于0" #表达式为False,触发异常.

image.png

x = 2
assert x >= 0,"x小于0" #表达式为True,不触发异常.

image.png

相关文章
|
6天前
|
数据处理 UED Python
Python 进度条:告别枯燥等待,让你的程序动感十足!
Python 进度条:告别枯燥等待,让你的程序动感十足!
24 1
|
6天前
|
数据库连接 Python
Python中的异常处理除了Try语句,你还会啥?
Python中的异常处理除了Try语句,你还会啥?
17 1
|
7天前
|
JavaScript 前端开发 ice
简单实用,Python代码调试利器~
简单实用,Python代码调试利器~
21 4
简单实用,Python代码调试利器~
|
6天前
|
开发者 Python
Python中的异常处理机制及其实践
【8月更文挑战第12天】Python的异常处理机制通过`try`和`except`结构显著提高了程序的稳定性和可靠性。在`try`块中执行可能引发异常的代码,如果发生异常,控制权将转移到与该异常类型匹配的`except`块。此外,还可以通过`else`处理无异常的情况,以及使用`finally`确保某些代码无论如何都会被执行,非常适合进行清理工作。这种机制允许开发者精确地捕捉和管理异常,从而提升程序的健壮性和可维护性。同时,Python还支持定义自定义异常,进一步增强了错误处理的灵活性。
23 4
|
6天前
|
机器人 API 开发工具
大恒相机 - Python SDK 调试记录
大恒相机 - Python SDK 调试记录
13 1
|
8天前
|
监控 测试技术 数据库
Python自动化测试之异常处理机制
总体而言,妥善设计的异常处理策略让自动化测试更加稳定和可靠,同时也使得测试结果更加清晰、易于理解和维护。在设计自动化测试脚本时,务必考虑到异常处理机制的实现,以保证测试过程中遇到意外情况时的鲁棒性和信息的有效传达。
20 2
|
16天前
|
消息中间件 网络协议 Python
信号传递新风尚!Python IPC,让你的程序间沟通无界限
【8月更文挑战第3天】在多程序系统中,进程间通信(IPC)是实现数据共享与协作的关键。Python提供多种IPC机制,如管道、消息队列和套接字,使信息交流高效灵活。通过`multiprocessing.Pipe()`,进程间可直接传递消息;利用消息队列实现异步通信,提高解耦与扩展性;借助socket库,支持网络内外进程通信。合理运用这些技术,能够显著增强程序间的协同能力,构建更灵活、可扩展的系统。
32 1
|
18天前
|
Python
惊!Python进程间通信IPC,让你的程序秒变社交达人,信息畅通无阻
【8月更文挑战第1天】在编程世界中,进程间通信(IPC)犹如一场社交舞会,各进程通过IPC机制优雅地交换信息,共同完成复杂任务。IPC就像隐形桥梁,连接并行运行的进程,使它们能跨越边界自由沟通。Python提供了多种IPC机制,如管道、队列、共享内存和套接字等,适应不同需求。例如,使用`multiprocessing.Queue`实现进程间通信,生产者向队列添加数据,消费者取出并处理数据,两者虽独立却能有效协作。IPC打破了进程界限,使得程序能像社交达人般自由交流,构建出高效、灵活的应用。掌握IPC,让程序信息畅通无阻。
16 1
|
7天前
|
并行计算 开发者 Python
解锁Python多进程编程的超能力:并行计算的魔法与奇迹,探索处理器核心的秘密,让程序性能飞跃!
【8月更文挑战第12天】在Python编程领域,多进程编程是一项关键技能,能有效提升程序效率。本文通过理论与实践结合,深入浅出地介绍了Python中的多进程编程。首先解释了多进程的概念:即操作系统中能够并发执行的多个独立单元,进而提高整体性能。接着重点介绍了`multiprocessing`模块,演示了如何创建和启动进程,以及进程间的通信方式,如队列等。此外,还提到了更高级的功能,例如进程池管理和同步原语等。通过这些实例,读者能更好地理解如何在实际项目中利用多核处理器的优势,同时注意进程间通信和同步等问题,确保程序稳定高效运行。
19 0
|
14天前
|
测试技术 开发者 Python
Python异常处理方法详解
【8月更文挑战第5天】本文全面介绍了Python中的异常处理机制,包括基本的`try-except`语句、异常类型捕获、自定义异常、异常链、日志记录异常等。此外还探讨了异常处理与循环、上下文管理器、性能考量、单元测试、链式调用及多线程和异步编程中的应用。通过丰富的代码示例,帮助读者深入理解并掌握这些技术,以提升程序的健壮性和可维护性。
28 0