在程序开发过程中,如果对于某些代码的执行不确定(程序的语法完全正确),并非程序本身的错误,是与外界交互时,外界输入不规范造成的。
以下是处理异常的方法:
格式:
try:
尝试执行的代码 except:
出现错误的处理
try:
num = int(raw_input('请输入一个整数:'))
except:
print '请输入一个正确的整数!'
如果一个程序有多个异常,在except后边应该写上异常的类型
当python解释器抛出异常时,最后一行提示的第一个单次就是错误类型
try:
num = int(raw_input('请输入一个整数:'))
result = 10 / num
print result
except ZeroDivisionError:
print '0不能做除数!'
except ValueError:
print '请输入一个正确的整数!'
在开发的时候,要判断所有可能出现的错误,是有一定难度的
如果希望程序无论出现任何错误,都不会因Python解释器抛出异常而终止,可以再增加一个except
try:
num = int(raw_input('请输入一个整数:'))
result = 8 /num
print result
except ValueError:
print '请输入正确的整数!'
# 捕获未知异常
except Exception as answer:
print '未知错误:%s' % answer
格式:
try:
#尝试执行的代码
pass except 错误类型1:
pass except 错误类型2:
pass except Exception as answer:else:
# 没有异常才会执行的代码
pass finally:
# 无论是否有异常,都会执行的代码
try:
num = int(raw_input('请输入一个整数:'))
result = 8 /num
print result
except ValueError:
print '请输入正确的整数!'
# 捕获未知异常
except Exception as answer:
print '未知错误:%s' % answer
# 程序没有异常的时候执行的代码
else:
print '程序正常!'
# 无论代码是否异常,都会执行的代码
finally:
print '******'
`这里写代码片`举例:输入一个密码,判断长度。长度>=8即合理,返回用户输入的密码,否则异常
def demo():
# 提示用户输入密码
code = raw_input('请输入您的密码:')
# 判断用户输入密码的长度是否大于8
if len(code) >= 8:
return code
# print '主动抛出异常!'
# 创建异常对象(可以添加异常信息)
ex = Exception('密码长度不够!')
raise ex
# 注意:只抛出异常而不捕获,会出现错误,以下是捕获异常的部分
try:
print demo()
except Exception as result:
print result
else:
print '密码设定成功!'