python中的面向过程中的异常处理和模块调用

异常:

在程序开发中,如果对某些代码的执行不确定(程序的语法完全正确)
可以增加try来捕获异常
try:
尝试执行的代码
expect:
出现错误的处理

try:
    num = int(raw_input('请输入一个整数: '))
except:
    print '请输入正确的整数'
# 无论输入是否错误,程序都会正常执行
print '*' * 50

当python解释器抛出异常时,最后一行错误信息的第一个单词,就是错误类型

num = int(raw_input('请输入一个整数:'))
result = 10 / num
print '结果为 %d' %result

# 1.输入的不是数字
# 2.0不能做被除数
print '程序执行完毕'

1.输入的不是数字

2.0不能做被除数

  • 捕获能够预测到的异常
    在程序开发中,如果对某些代码的执行不确定(程序的语法完全正确)
    可以增加try来捕获异常
    try:
    尝试执行的代码
    expect:
    出现错误的处理

try:
    num = int(raw_input('请输入一个整数:'))
    result = 10 / num
    print '结果为 %d' %result
except ZeroDivisionError:
    print '0不能做除数'
except ValueError:
    print '请输入正确的整数'
# 1.输入的不是数字
# 2.0不能做被除数
print '程序执行完毕'

当用户输入错误信息不是数字时:

当用户输入0时:

  • 捕获未知错误:
    在开发的时候,要判断所有可能出现的错误,是有一定难度的
    需要面面俱到,如果希望程序无论出现任何错误,都不会因python解释器抛出异常而终止
    可以再增加expect Expection as 输出结果
    print ‘%s ’ %输出结果 # 可以看到错误原因

try:
    num = int(raw_input('请输入一个整数:'))
    result = 10 / num
    print '结果为 %d' %result
# except ZeroDivisionError:
#   print '0不能做除数'
except ValueError:
    print '请输入正确的整数'
# 捕获未知异常
# result:一个变量名,可以随意起名
except Exception as result:
    print '未知错误 %s' %result

有时候我们并不能面面俱到,考虑所有的出错结果,比如上一程序中用户输入的被除数,要求为整数,我们只考虑到不是整数就行,但是却忽略了一点,0虽然为整数,但不能作被除数,当系统识别到用户输入的0时,也会中断程序,因此我们用Exception 来表示未知异常。

try:
    num = int(raw_input('请输入一个整数:'))
    result = 10 / num
    print '结果为 %d' %result
# except ZeroDivisionError:
#   print '0不能做除数'
except ValueError:
    print '请输入正确的整数'
# 捕获未知异常
# result:一个变量名,可以随意起名
except Exception as result:
    print '未知错误 %s' %result

  • try 中也有else finally的使用

try:
尝试执行的代码
expect:错误类型1
pass
expect:错误类型2
pass
expect:错误类型3
pass
expect Exception as result
pass
else:
#没有异常才会执行的代码
finally:
# 无论是否有异常,都会执行的代码
pass

try:
    num = int(raw_input('请输入一个整数:'))
    result = 10 / num
    print '结果为 %d' % result
# except ZeroDivisionError:
#   print '0不能做除数'
except ValueError:
    print '请输入正确的整数'
# 捕获未知异常
# result:一个变量名,可以随意起名
except Exception as result:
    print '未知错误 %s' % result
# 只有在程序没有出现异常错误才会执行的代码
else:
    print '尝试成功'
# 无论程序是否程序是否出现异常,都会执行的代码
finally:
    print '*********'

让我们来看看他们的效果吧!!
当输入正确的信息时:

当输入错误的信息时:

猜你喜欢

转载自blog.csdn.net/dreamer_xixixi/article/details/81182986