码迷,mamicode.com
首页 > 编程语言 > 详细

python基础-异常处理

时间:2016-12-30 13:17:20      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:存在   file   类型   indent   nbsp   attr   try   输入   index   

一、异常简介

 

二、异常种类

 1 AttributeError          试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
 2 IOError                 输入/输出异常;基本上是无法打开文件
 3 ImportError             无法引入模块或包;基本上是路径问题或名称错误
 4 IndentationError        语法错误(的子类) ;代码没有正确对齐
 5 IndexError              下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
 6 KeyError                试图访问字典里不存在的键
 7 KeyboardInterrupt       Ctrl+C被按下
 8 NameError               使用一个还未被赋予对象的变量
 9 SyntaxError             Python代码非法,代码不能编译(个人认为这是语法错误,写错了) 
10 TypeError               传入对象类型与要求的不符合
11 UnboundLocalError       试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它
12 ValueError              传入一个调用者不期望的值,即使值的类型是正确的

 

三、异常处理

语法:

1 try:
2     pass
3 except Exception,ex:
4     pass

 

示例1:

必须输入整型,否则就进入异常处理

1 try:
2     age=input(1>>:)
3     int(age)
4 
5     num2=input(2>>:)
6     int(num2)
7 
8 except IndexError as e:
9     print(e)

执行结果:

1 1>>:1
2 2>>:2sffs
3 Traceback (most recent call last):
4   File "D:/python/day29/s2.py", line 10, in <module>
5     int(num2)
6 ValueError: invalid literal for int() with base 10: 2sffs

 

多分支  (Exception) 万能异常

示例1:

 1 try:
 2     age=input(1>>:)
 3     int(age)
 4 
 5     num2=input(2>>:)
 6     int(num2)
 7 
 8     l=[]
 9     1[10000]
10 
11     dic={}
12     dic[name]
13 
14 except KeyError as e:
15     print(e)
16 
17 except ValueError as e:
18     print(=========>,e)
19 
20 except IndexError as e:
21     print(-------->,e)
22 
23 print(1111111111111111111111)

执行结果:

1 1>>:18
2 2>>:asdfdsa
3 =========> invalid literal for int() with base 10: asdfdsa
4 1111111111111111111111

 

示例2:

 1 try:
 2     age=input(1>>:)
 3     int(age)  #主逻辑
 4 
 5     num2=input(2>>:)
 6     int(num2)  #主逻辑
 7 
 8     l=[]
 9     1[10000]
10 
11     dic={}
12     dic[name]
13 
14 except Exception as e:
15     print(e)
16 
17 print(11111111111111111111)

执行结果:

1 1>>:11
2 2>>:fdsf
3 invalid literal for int() with base 10: fdsf
4 11111111111111111111

 

 

其它的异常结构 part5:

 

python基础-异常处理

标签:存在   file   类型   indent   nbsp   attr   try   输入   index   

原文地址:http://www.cnblogs.com/nulige/p/6236431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!