Python中的异常处理

异常

在程序开发过程中,如果对于某些代码的执行不确定(程序的语法完全正确),并非程序本身的错误,是与外界交互时,外界输入不规范造成的。
以下是处理异常的方法:

一.单个异常:

格式:

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 '密码设定成功!'

你可能感兴趣的:(Python,异常处理)