python 异常处理
1. bug
2. 异常处理 - try
【1】
# 可能出现异常的代码
try:
num1 = int(input('整数:'))
num2 = int(input('整数:'))
result = num1 /num2
print('结果:',result)
except ZeroDivisionError: #被0除
print('除数为0')
except ValueError:
print('输入数字')
except BaseException:
print('未知异常')
---
测试:
整数:10
整数:0
除数为0
----
整数:a
输入数字
【2】
try:
num1 = int(input('整数:'))
num2 = int(input('整数:'))
result = num1 /num2
except ZeroDivisionError:
print('除数为0')
except ValueError:
print('输入数字')
except BaseException:
print('未知异常')
else:
print('结果:',result)
-----------------------------------------------------
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('over')
3. 异常处理 - raise
- raise
- 抛出一个异常,从而提醒程序出现异常情况,程序能够正确地处理这些异常情况
- raise关键字语法结构:
- raise [Exception类型(异常描述信息)]
try:
gender=input('性别:')
if gender != '男' and gender != '女':
raise Exception('性别只能是男和女')
else:
print('您的性别:',gender)
except Exception as a: #异常对象别名a
print(a)
--------------------------------------------
# 分数异常处理
try:
score=int(input("成绩:"))
if score < 0 or score > 100:
raise Exception('分数不正确')
else:
print(score)
except ValueError:
print (" input num")
except Exception as a:
print(a)
常见异常类型
#(1)ZeroDivisionError
#print(10/0)
#(2)IndexError
# lst=[10,20,30]
# print(lst[4])
#(3)KeyError
# d = {'name':'a','age':20}
# print(d['gender'])
#(4)NameError
# print(hello)
#(5)SyntaxError
# print('nihao)
#(6)ValueError
# print(int('a'))
#(7)AttributeError 属性或方法名异常
# i = 10
# print(i.name)
#(8)TypeError
# print('hello'+123)
#(9)IndentationError 缩进异常
# print("a")
4. PyCharm 调试
-
断点
-
进入调试
-
开始调试
总结: