try……except的语法结构为:
try:
可能会抛出异常的代码
except 异常类型:
异常处理代码(报错后执行的代码)
#异常
try:
num1=int(input('请输入一个整数:'))
num2=int(input('请输入一个整数:'))
result=num1/num2
print('结果',result)
except ZeroDivisionError:
print('除数为0')
请输入一个整数:10
请输入一个整数:0
除数为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('未知异常')
请输入一个整数:a
输入类型出错
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('运行成功')
请输入一个整数:10
请输入一个整数:2
结果 5.0
运行成功
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('运行成功')
finally:
print('程序执行完毕')
请输入一个整数:10
请输入一个整数:2
结果 5.0
运行成功
程序执行完毕
请输入一个整数:10
请输入一个整数:0
除数为0
程序执行完毕
raise:抛出一个异常,从而提醒程序出现了异常情况,程序能够正确地处理这些异常情况
raise关键字的语法结构为:
raise [Excepttion类型(异常描述信息)]
try:
gender=input("请输入您的性别:")
if gender!='男' and gender!='女':
raise Exception('性别只能是男或者女')
else:
print('您的性别是:',gender)
except Exception as e:
print(e)
请输入您的性别:不知道
性别只能是男或者女
请输入您的性别:男
您的性别是: 男
Python中常见的异常类型
ZeroDivisionError:当除数为0时,引发的异常
IndexError:索引超出范围所引发的异常
KeyError:字典取值是key不存在的异常
SyntaxError:Python中的语法错误
NameError:使用一个没有声明的变量时引发的异常
ValueError:传入的值错误
print(int('a'))
^^^^^^^^
ValueError: invalid literal for int() with base 10: 'a'
AttributeError:属性或方法不存在的异常
print('i'.name)
^^^^^^^^
AttributeError: 'str' object has no attribute 'name'
TypeError:类型不合适引发的异常
print('i'+123)
~~~^~~~
TypeError: can only concatenate str (not "int") to str
IndentationError:不正确的缩进引发的异常