【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("列表索引超出范围!")

执行结果
在这里插入图片描述

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("程序执行正确!")

执行结果

【python】异常处理及程序调试(一)_第1张图片

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

【python】异常处理及程序调试(一)_第2张图片

4.异常抛出

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

raise [Exception [,args [,traceback]]]
  • 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)

【python】异常处理及程序调试(一)_第3张图片

四、断言语句

1.概述

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

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

2.举例

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

【python】异常处理及程序调试(一)_第4张图片

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

在这里插入图片描述

你可能感兴趣的:(python,python,开发语言)