目录
一、掌握不同异常类型的处理方式
- 解决思路不清导致的问题:
1.使用print()函数
2.使用“#”暂时注释部分代码
- 代码逻辑没错,用户操作不正确导致的错误,使用异常处理机制
二、掌握Python的异常处理机制
- try...except的语法结构为:
try:
可能会抛出异常的代码
except 异常类型:
异常处理代码(报错后执行的代码)
try:
num1 = int(input('请输入一个整数:'))
num2 = int(input('请输入另一个整数:'))
result = num1 / num2
print('结果:',result)
except ZeroDivisionError:
print('除数为0')
- 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('未知异常')
- try...except...else的语法结构为:
try:
可能会抛出异常的代码
except 异常类型:
异常处理代码(报错后执行的代码)
else:
没有抛异常要执行的代码
try:
num1 = int(input('请输入一个整数:'))
num2 = int(input('请输入另一个整数:'))
result = num1 / num2
except ZeroDivisionError:
print('除数不能为0')
except ValueError:
print('不能将字符串转成整数')
except BaseException:
print('未知异常')
else:
print('结果:',result)
- try...except...else...finally的语法结构为:
try:
可能会抛出异常的代码
except 异常类型:
异常处理代码(报错后执行的代码)
else:
没有抛异常要执行的代码
finally:
无论是否产生异常都要执行的代码
try:
num1 = int(input('请输入一个整数:'))
num2 = int(input('请输入另一个整数:'))
result = num1 / num2
except ZeroDivisionError:
print('除数不能为0')
except ValueError:
print('不能将字符串转成整数')
except BaseException:
print('未知异常')
else:
print('结果:',result)
finally:
print('程序执行结束!')
raise抛出一个异常,从而提醒程序出现了异常情况,程序能够正确地处理这些异常情况
raise关键字的语法结构为:
raise[Exception类型(异常描述信息)]
try:
gender=input('请输入您的性别:')
if gender!='男'and gender!='女':
raise Exception('性别只能是男或女')
else:
print('您的性别是:',gender)
except Exception as f:
print(f)
Python中常见的异常类型
异常类型 | 描述说明 |
---|---|
ZeroDivisionError | 当除数为0时,引发的异常 |
IndexError | 索引超出范围所引发的异常 |
KeyError | 字典取值时Key不存在的异常 |
NameError | 使用一个没有声明的变量时引发的异常 |
SyntaxError | Python中的语法错误 |
ValueError | 传入的值错误 |
AttributeError | 属性或方法不存的异常 |
TypeError | 类型不合适引发的异常 |
IndentationError | 不正确的缩进引发的异常 |
总结
异常处理机制:
- try...except
- try...except...except
- try...except...else
- try...except...else...finally
Pycharm的调式模式
- 设置断点
- 单步运行
- 观察变量
- 查找问题
- 重新调试,直至问题解决