鱼C论坛

 找回密码
 立即注册
查看: 1531|回复: 0

[技术交流] python 032, 033 异常处理

[复制链接]
发表于 2018-6-27 15:23:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 风不会停息 于 2018-7-3 23:50 编辑

1. 常见的异常: http://bbs.fishc.com/thread-45814-1-1.html

2. try:
        xxx
    except  Exception [as reason]:
        xxx
    finally:
        xxx

用来捕捉并处理产生的异常, Exception为将会产生异常的名称, 可以同时捕捉多个异常, 用()元组表示, reason为发生异常的原因, print(reason)即可打印原因, 若在try...except 中间发生异常, 则之后的语句一直到except 都不会执行, 若异常发生, 则先执行except后的语句再执行finally后的语句, 不发生异常则不执行except后的语句但要执行finally后的语句:
>>> try:
        temp = int(input("输入一个整数: "))
        print('输入为整数时我会被打印')
except  ValueError as reason:
        print('发生异常, 原因为' + str(reason) )
        print('输入不是整数时我会被打印')
finally:
        print('我会被打印')

        
输入一个整数: 1
输入为整数时我会被打印
我会被打印
>>> try:
        temp = int(input("输入一个整数: "))
        print('输入为整数时我会被打印')
except  ValueError as reason:
        print('发生异常, 原因为' + str(reason) )
        print('输入不是整数时我会被打印')
finally:
        print('我会被打印')

        
输入一个整数: 1.5
发生异常, 原因为invalid literal for int() with base 10: '1.5'
输入不是整数时我会被打印
我会被打印

3. raise Exception  :  强制发生异常, 异常名称为Exception, 当 raise Exception('xxxx'), 则抛出异常的同时还会打印括号里的内容, 例如:
>>> raise ValueError
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    raise ValueError
ValueError
>>> raise ValueError('我会被打印')
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    raise ValueError('我会被打印')
ValueError: 我会被打印

4. except 后若不跟异常名称的话, 则会捕捉dtry后出现的所有异常, 包括 键盘中断

5. locals():局部变量符号表, 储存所有创建的变量, 当检查变量是否存在时, 可以使用 for 'variable' in locals():  存在则为True, 不存在即为False

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 18:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表