美文网首页
异常处理

异常处理

作者: __Python__ | 来源:发表于2017-07-12 19:15 被阅读0次

    一.捕获异常try...except...

    try:

    11/0

    except   ZeroDivisionError:

    print('代码错误')

    捕获多个错误要加():

    try:

    open('123.txt','r')#如果123.txt文件不存在,那么会产生IOError异常

    print(num)#如果num变量没有定义,那么会产生NameError异常

    except(IOError,NameError):

    print(errorMsg)

    二.获取异常的信息描述

    三.else

    try:

    print(num)

    except NameError as errorMsg:

    print('产生错误了:%s'%errorMsg)

    else:

    print('没有捕获到异常)

    四.try...finally...

    在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。 比如文件关闭,释放锁,把数据库连接返还给连接池等

    importtime

    try:

    f = open('test.txt')

    try:

    whileTrue:

    content = f.readline()

    iflen(content) ==0:

    break

    time.sleep(2)

    print(content)

    except:

    #如果在读取文件的过程中,产生了异常,那么就会捕获到

    #比如 按下了ctrl+c

    pass

    finally:

    f.close()

    print('关闭文件')

    except:

    print("没有这个文件")

    注意:不管有没有捕捉到错误,finally都会执行

    五.异常的传递

    deftest1():

    print("----test1-1----")

    print(num)

    print("----test1-2----")

    deftest2():

    print("----test2-1----")

    test1()

    print("----test2-2----")

    deftest3():

    try:

    print("----test3-1----")

    test1()

    print("----test3-2----")

    exceptExceptionasresult:

    print("捕获到了异常,信息是:%s"%result)

    print("----test3-2----")

    test3()

    print("------华丽的分割线-----")

    test2()

    六.异自定义异常

    '''

    自定义异常类:

    因为系统提供的异常类,无法描述我的异常。

    我需要自定义一些异常类,来描述我所出现的异常。

    '''

    class NameShortException(Exception):

    def __init__(self,msg,num):

    self.msg = msg

    self.num = num

    def f():

    '''这是输入姓名并判断,如果姓名的长度小于3,抛出NameShortException异常'''

    name = input('请输入姓名:')

    if len(name.strip())<3:

    #手动抛出一个异常对象,以后的代码不再运行

    raise NameShortException('名字的长度至少是3',len(name.strip()))

    print('f......')

    def main():

    try:

    f()

    except Exception as ex:

    print('错误信息是:%s,输入的字符串长度是:%s'%(ex.msg,ex.num))

    print('其它代码。。。。。。。')

    main()

    相关文章

      网友评论

          本文标题:异常处理

          本文链接:https://www.haomeiwen.com/subject/bntihxtx.html