【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

相关文章
|
4天前
|
存储 NoSQL 数据库连接
在Python程序中实现LevelDB的海量key的分批次扫描
通过本文的步骤,您可以在Python程序中实现对LevelDB海量key的分批次扫描。这样不仅能够有效地管理大规模数据,还可以避免一次性加载过多数据到内存中,提高程序的性能和稳定性。希望这篇指南能为您的开发工作提供实用的帮助。
47 28
|
23天前
|
安全 API C语言
Python程序的安全逆向(关于我的OPENAI的APIkey是如何被盗的)
本文介绍了如何使用C语言编写一个简单的文件加解密程序,并讨论了如何为编译后的软件添加图标。此外,文章还探讨了Python的.pyc、.pyd等文件的原理,以及如何生成和使用.pyd文件来增强代码的安全性。通过视频和教程,作者详细讲解了生成.pyd文件的过程,并分享了逆向分析.pyd文件的方法。最后,文章提到可以通过定制Python解释器来进一步保护源代码。
67 6
|
1月前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
17天前
|
Shell 开发工具 Python
如何在vim里直接运行python程序
如何在vim里直接运行python程序
|
2月前
|
存储 人工智能 数据挖掘
Python编程入门:打造你的第一个程序
本文旨在为初学者提供Python编程的初步指导,通过介绍Python语言的基础概念、开发环境的搭建以及一个简单的代码示例,帮助读者快速入门。文章将引导你理解编程思维,学会如何编写、运行和调试Python代码,从而开启编程之旅。
53 2
|
2月前
|
Python
在Python中,`try...except`语句用于捕获和处理程序运行时的异常
在Python中,`try...except`语句用于捕获和处理程序运行时的异常
65 5
|
2月前
|
存储 Python
Python编程入门:理解基础语法与编写简单程序
本文旨在为初学者提供一个关于如何开始使用Python编程语言的指南。我们将从安装Python环境开始,逐步介绍变量、数据类型、控制结构、函数和模块等基本概念。通过实例演示和练习,读者将学会如何编写简单的Python程序,并了解如何解决常见的编程问题。文章最后将提供一些资源,以供进一步学习和实践。
53 1
|
数据采集 数据挖掘 编译器
【Python 基础教程】错误与异常的处理
【Python 基础教程】错误与异常的处理
【Python 基础教程】错误与异常的处理
|
存储 缓存 安全
【python】错误和异常(第三讲)
assert,翻译过来是“断言”之意。assert 是一句等价于布尔真的判定,发生异常就意味着表达式为假。 assert 的应用情景就有点像汉语的意思一样,当程序运行到某个节点的时候,就断定某个变量的值必然是什么,或者对象必然拥有某个属性等,简单说就是断定什么东西必然是什么,如果不是,就抛出错误。......
247 0
【python】错误和异常(第三讲)
|
自然语言处理 Linux 测试技术
【python】错误和异常(第二讲)
处理多个异常,并不是因为同时报出多个异常。程序在运行中,只要遇到一个异常就会有反应,所以,每次捕获到的异常一定是一个。所谓处理多个异常的意思是可以容许捕获不同的异常,有不同的 except 子句处理。......
177 0
【python】错误和异常(第二讲)
下一篇
开通oss服务