python try异常处理

发布时间:2019-09-19 08:00:14编辑:auto阅读(1572)

    错误和异常:
        错误:
            nameerror           未声明、初始化对象
            indexerror          序列中没有此索引
            syntaxerror         语法错误
            keyboardinterrupt   用户中端执行
            EOFEror             没有内建输入,到达EOF标记
            IOErrot             输入/输出操作失败
    
        import time
    
        for i in range(1,11):
            print(i)
            try:                        #把可能发生错误的代码放入try里面,
                time.sleep(1)
            except KeyboardInterrupt:   #当产生KeyboardInterrupt
                print('Bey-Bey')
    
        #事后申请原谅比事前申请权限容易
        try:
            number = int(input('number:'))
            result = 100 / number
    
        except (ValueError, ZeroDivisionError) as e:
            print('errot', e)
        except (KeyboardInterrupt, EOFError):
            print('\nBey-Bey')
        else:                   #没有异常时执行的语句
            print(result)
        finally:                #不论有没有异常都会执行的语句
            print('done')
    
    触发异常:
        raise语句:
            想要引发异常,最简单的形式就是输入关键字raise,后面跟要引发的异常的名称
            执行raise语句时,python会创建指定的异常类的一个对象
            raise语句还可以指定对异常对象进行初始化的参数
    
        def set_age(name, age):
            if not 0 < age < 150:
                raise ValueError('age out of range.')
            print('%s is %s years olg') % (name, age)
    
        #断言:
            断言是一句必需等价于布尔值为真的判断
            此外,发生异常也意味着表达式为假
        def set_age2(name, age):
            assert  0 < age < 150, 'age out of range'  #当表达式为真时,正常指定print语句,为假时执行报错语句'age out of range' 
            print('%s is %s years lod' % (name, age))
    
        if __name__ == '__main__':
            set_age('bob', 222)

关键字

上一篇: Python28 异常

下一篇: Python调用Mysql