python提供了异常处理机制,可以在异常出现时即时捕获,然后内部消化,让程序继续运行。
try----except -----语句
try:
…#这里添加可能出现异常的代码
except…#这里添加程序报错的异常类型:
…#这里添加报错后仍然执行的代码
try:
a1=int(input('请输入第一个整数:'))#将数字串转化为int类型
a2=int(input('请输入第二个整数:'))
c=a1/a2
print('两者相除的结果为:',c)
except ZeroDivisionError: #如果除数为零 则执行这一行代码
print('除数不能为零')
except ValueError: #如果输入类型错误则执行这一段代码
print("不能加文字和字母串转换为数字")
except BaseException as e:
print(e)
try----except----else----语句
如果try块中没有抛出异常,则执行else块,如果try中抛出异常则执行except块
try:
a1=int(input('请输入第一个整数:'))
a2=int(input('请输入第二个整数:'))
c=a1/a2
except ZeroDivisionError:
print('除数不能为零')
else:
print('两者相除的结果为:', c)
try----except----else----except
finally块无论是否发生异常都会被执行的,能常用来释放try块中申请的资源
try:
a1=int(input('请输入第一个整数:'))
a2=int(input('请输入第二个整数:'))
c=a1/a2
print('两者相除的结果为:',c)
except ZeroDivisionError:
print('除数不能为零')
except ValueError:
print("不能加文字和字母串转换为数字")
except BaseException as e:
print(e)
finally: #无论是否产生异常,总会被执行的代码
print('程序结束')
python常见的异常类型
- ZeroDivisionError 除或者取模零
- IndexError 序列中没有此索引 比如列表的查询超出了范围
- KeyError 映射中没有这个键,出现在字典获取值的代码中
- NameError 为声明或者初始化对象
- SyntaxError (python 语法错误)
- ValueError (传入无效的参数)
traceback
import traceback #导入
try:
print('----------------------------')
print(10/0)
except :
traceback.print_exc() #可以输出错误类型的语句
pycharm调试
红色的部分称为断点
使用debug调试,并设置断点,按这个标红的按钮可以使程序一行一行执行。