python笔记11~异常处理

#coding:utf-8

#什么是错误和异常
#常见异常的种类
#异常怎么处理
#自定义异常

#Python  使用try......except

#try:
#    file=open('python.py','r') #如果没有异常
#    print('没有发生异常')
#except Exception as e:
#    print(e)

#finally:
#    print('有没有异常都执行')


#常见的异常类型
#NameError (使用了没有定义的变量)
#ZeroDivisionError  #print(9/0) 报错ZeroDivisionError

#SyntaxError
#for num in [1,2,3]  #少冒号 SyntaxError: invalid syntax
#    print(num)

#IndexError索引越界
#a_list=[12,25]
#print(a_list[7]) #IndexError: list index out of range

#KeyError字典Key:value        z
#person_dict={'name':'ben','age':22}
#print(person_dict['per'])   #KeyError: 'per'

#IOError 文件错误
#f=open('ben.py')        #IOError: [Errno 2] No such file or directory: 'ben.py'

#AttributeError 位置属性错误
#class MyClass():
#    pass
#c=MyClass()
#print(c.name)


#分类异常捕获
#try:
#    f=open('ben.py') #不能直接操作文件(调用操作系统的操作方法接口)
#    x=24/0
#    y=int('angela')
#except ValueError as  e:
#    print(1)
#except IOError as  e:
#    print(2)
#except ZeroDivisionError as e:
#    print(3)
#except Exception as  e:
#    print(e )
#else:
#    print('代码正常')
#finally:
#    print('清除完毕')


#try:
#    result=int('bane')
#    bun=99/0
#    f=open('ben.py')
#except (ValueError,IOError,ZeroDivisionError<Exception) as e:
#    print(e)
#else:
#    print('代码正常')
#finally:
#    print('清楚成功')


#异常捕获和不捕获区别
#异常没有被捕获,#Traceback(堆栈信息,打印到控制台,程序强制终止),异常后面的信息不被执行
#如果捕获,即使有异常,也不影响后面的代码执行


#由程序员主动抛出异常 raise(Python关键字)
#解释器-->抛出异常
#由程序员主动抛出异常(真的出现异常,可以跑出,出现特定的场景,也可以抛出强制的提醒)
#age=22
#if age>20:
#    raise  ValueError('不正确')  #程序员抛出异常,不是解释器
#发生异常,我么可以不捕获,直接抛出去



#自定义异常
#import  sys
#class MyError(Exception):
#    def __init__(self,message): #__XXX__ 具有特殊含义
#        self.mess=message
#    def __str__(self):
#        return  self.mess

#def run():
#    try:
#        if len(sys.argv)==1:
#            raise  MyError('参数个数不正确')
#    except Exception as  e:
#        print(e)

 

posted @ 2018-03-06 09:21  零度咖啡  阅读(102)  评论(0)    收藏  举报