异常处理,废话不说,只要是一门编程语言(脚本除外),就肯定有异常处理的机制
一、概念理解
- 异常,指的是在程序出现异常/报错的时候,直接退出程序的一种人工设计的现象,当然设计异常目的不是让程序崩溃退出,那是什么呢?♋很重要,划重点了!!!设计的目的就是为了保护数据,对,就是为了保护数据,试想一下如果程序运行过程中出现了错误,那么数据就会不正常,如果继续执行,而我们却不知情,那就惨了,脑补一下转账出现异常你就明白了,这个时候就会通过异常和事务的配合恢复数据,从而避免脏数据的产生(当然这也是我脑补的,自己YY的,如果有不同的看法可以在评论区留言,谢谢)
二、常见的异常:
- AttributeError:属性不存在异常
- IOError:
- ImportError:模块导入异常
- IndetationError:索引异常
- IndexError:下标异常
- KeyError:键异常
- KeyboardInterruptError:键盘中断异常
- NameError:使用了一个未被初始化的变量异常
- SyntaxError:语法错误异常
- TypeError:类型异常
- UnboundLocalError:
- ValueError:
三、异常的捕捉
- 语法:
try: <try-body> except <error-type1>[, <message>]: <handle-body1> [except <error-type2>[, <message>]: <handle-body2> except: <handle-unexpected-body> finally/else: <finally/else-body>]
- 举例:
while True: try: age = int(raw_input("请输入你的年龄:")) if age < 0 or age > 150: raise AgeOutOfRangeException, "你是人类吗?" break except ValueError: print("请输入一个正确的年龄!") except AgeOutOfRangeException, message: print(message)
四、自定义异常
- 自定义异常牵涉到python的面相对象的内容,暂时就先写着吧,后面补面相对象的内容
- 自定义一个异常类:
class AgeOutOfRangeException(Exception): pass