【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

相关文章
|
11天前
|
IDE 开发工具 Python
Python 编程入门:打造你的第一个程序
【10月更文挑战第6天】编程,这个听起来高大上又充满神秘感的领域,其实就像学习骑自行车一样。一开始你可能会觉得难以掌握平衡,但一旦你学会了,就能自由地穿梭在广阔的道路上。本文将带你走进 Python 的世界,用最简单的方式让你体验编写代码的乐趣。不需要复杂的理论,我们将通过一个简单的例子——制作一个猜数字游戏,来实践学习。准备好了吗?让我们开始吧!
|
13天前
|
存储 JSON 安全
面向企业应用程序的 Python 配置管理
面向企业应用程序的 Python 配置管理
23 9
|
14天前
|
人工智能 数据挖掘 程序员
Python 编程入门:打造你的第一个程序
【10月更文挑战第3天】编程,这个看似高深莫测的技能,实际上就像学骑自行车一样,一旦掌握,便能开启全新的世界。本文将带领初学者步入Python编程的殿堂,从基础语法到编写实用程序,一步步解锁编程的乐趣。
|
16天前
|
安全 Java 程序员
Python 异常处理!
本文详细介绍了Python中的异常处理,包括try、except和finally语句的使用方法。文章区分了语法错误与异常,并列举了Python中常见的异常类型,如`SyntaxError`、`TypeError`等。通过具体示例展示了如何使用try-except块捕获和处理异常,以及如何结合else和finally子句增强代码的健壮性和可读性。此外,还介绍了如何使用raise语句主动抛出异常。通过合理的异常处理,可以提高程序的可靠性与调试效率,但也可能带来性能开销和代码复杂度的增加。
31 4
|
17天前
|
Python
Python编程---双色球选购程序
Python编程---双色球选购程序
16 1
|
9天前
|
存储 开发者 Python
Python编程入门:构建你的第一个程序
【10月更文挑战第8天】本文旨在为初学者提供一个简单的Python编程入门指南。我们将从安装Python环境开始,逐步介绍如何编写、运行和理解一个简单的Python程序。文章将通过一个实际的代码示例来展示Python的基本语法和结构,帮助读者快速上手Python编程。
|
9天前
|
存储 程序员 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第8天】在数字时代的浪潮中,编程已成为一项基础技能。本文旨在引导初学者步入编程世界,通过Python语言的简洁与强大,轻松打造个人的第一个程序。我们将一起探索变量、数据类型、控制结构等概念,并通过实际代码示例,解锁编程的乐趣。无论你是编程新手还是希望了解Python的爱好者,这篇文章都将是你的理想起点。让我们开始吧,用代码书写你的数字梦想!
|
10天前
|
Java Python
如何通过Java程序调用python脚本
如何通过Java程序调用python脚本
11 0
|
Web App开发 存储
Python+selenium 自动化-操作已启用的chrome浏览器实例演示,chrome启用调试端口方法
Python+selenium 自动化-操作已启用的chrome浏览器实例演示,chrome启用调试端口方法
574 0
Python+selenium 自动化-操作已启用的chrome浏览器实例演示,chrome启用调试端口方法
|
5月前
|
Python
【Python进阶(二)】——程序调试方法
【Python进阶(二)】——程序调试方法