七、异常处理
常见的Bug
粗心导致的语法错误:
1.漏了末尾的冒号,如if语句、循环语句、else子句等
2.缩进错误,该缩进的没有缩进,不该缩进的进行了缩进
3.把英文符号写成了中文符号,例如:引号、冒号、括号
4.字符串拼接的时候,把数字和字符串拼在一起
5.没有定义变量,例如:while循环条件的变量没有定义
6.”==“比较运算符和”=“赋值运算符的混用
异常处理
1.try...except的语法结构为:
try:
可能会抛出异常的代码
except 异常类型:
异常处理代码(报错后执行的代码)
例如:
'''
可能出现异常的代码(输入的num2可能为0):
num1=int(input('请输入一个整数:'))
num=int(input('请输入另一个整数:'))
result=num1/num2
print('结果:',result)
'''
try:
num1 = int(input('请输入一个整数:'))
num = int(input('请输入另一个整数:'))
result = num1 / num2
print('结果:', result)
except ZeroDivisionError
print('除数为0')
2.try...except...except的语法结构为:
try:
可能会抛出异常的代码
except 异常类型A:
异常处理代码(报错后执行的代码)
except 异常类型B:
异常处理代码(报错后执行的代码)
try:
num1 = int(input('请输入一个整数:'))
num2 = int(input('请输入另一个整数:'))
result = num1 / num2
print('结果:', result)
except ZeroDivisionError:
print('除数不能为0')
except ValueError:
print('不能将字符串转成整数')
except BaseException:
print('未知异常')
3.try...except...else的语法结构为:
try:
可能会抛出异常的代码
except 异常类型:
异常处理代码(报错后执行的代码)
else:
没有抛异常要执行的代码
try:
num1 = int(input('请输入一个整数:'))
num2 = int(input('请输入另一个整数:'))
result = num1 / num2
print('结果:', result)
except ZeroDivisionError:
print('除数不能为0')
except ValueError:
print('不能将字符串转成整数')
else:
print('结果:',result)
4.try...except...else...finally的语法结构为:
try:
可能会抛出异常的代码
except 异常类型:
异常处理代码(报错后执行的代码)
else:
没有抛异常要执行的代码
finally:
无论是否产生异常都要执行的代码
try:
num1 = int(input('请输入一个整数:'))
num2 = int(input('请输入另一个整数:'))
result = num1 / num2
print('结果:', result)
except ZeroDivisionError:
print('除数不能为0')
except ValueError:
print('不能将字符串转成整数')
else:
print('结果:',result)
finally:#无论程序是否产生异常都会执行
print('程序执行完毕')
补充raise关键字的使用:
抛出一个异常,从而提醒程序出现了异常情况,程序能够正确地处理这些异常情况。
raise关键字的语法结构为:
raise[Exception类型(异常描述信息)]
常见的异常类型
ZeroDivisionError:当除数为零时,引发的异常
IndexError:索引超出范围所引发的异常
KeyError:字典取值时key不存在的异常
NameError:使用一个没有声明变量时引发的异常
SyntaxError:python中的语法错误
ValueError:传入值的错误
程序的调试
操作步骤:
1.设置断点:点击要设置断点所在行的左侧即可
2.进入调试窗口:
进入调试窗口有三种方式:
a):单击工具栏上的调试按钮:
b):右键单击编辑区:点击“Debug模块名”
c):快捷键:shift+F9
3.开始调试
窗口介绍:
程序控制窗口的介绍: