zoukankan      html  css  js  c++  java
  • python入门19 异常及异常处理 异常捕获

    常见异常举例

    """ 一些异常举例:"""
    
    '''模块不存在 ModuleNotFoundError: No module named 'data' '''
    #import data1
    '''索引越界 IndexError: list index out of range '''
    li = [1,2]
    #li[3]
    '''key不存在 KeyError: 'a' '''
    dict1 = {}
    #dict1['a']
    ''' NameError: name 'a' is not defined '''
    #a #未定义的变量
    '''缩进错误 IndentationError: expected an indented block '''
    # if 1:
    # return True #缩进错误
    '''语法错误 SyntaxError: invalid syntax '''
    #def fund x: return x
    ''' 类型错误 TypeError: can only concatenate str (not "int") to str '''
    #'a' + 2
    ''' 除数为0  ZeroDivisionError: division by zero'''
    #2/0
    ''' 递归错误 未设置跳出条件 RecursionError: maximum recursion depth exceeded '''
    # def f(x):
    #     return f(x)
    # f(1)

    异常捕获 try except finally

    """异常捕获 
    try(可能发生异常的语句) 
    except(发生异常后处理)
    else(没有发生异常后执行的语句) 
    finally(不管有无异常都要继续执行的语句)
    不捕获,发生异常后后程序会中断执行。捕获异常,可根据异常进行处理
    """
    #捕获一种特定异常
    try:
        x = 10/0
        print('x=',x) #异常后的不执行
    except ZeroDivisionError:
        print('除数不能为零') #发生异常后执行的部分
    else:
        print('没有除数异常') #没有发生异常后执行
    finally:
        x = 0
        print('finally')  #不管有无异常均一定会执行的部分

    #捕获多种异常
    try:
        a
        x = 10/0
    except (ZeroDivisionError,NameError):
        print('出错了') #发生异常后执行的部分
    #捕获任何类型的异常
    import traceback
    try:
        x = 10/0
        a
    except BaseException as e:
        print(e) #仅显示异常信息
        traceback.print_exc() #显示错误所在详细的堆栈信息
    print('后续程序继续执行')

    抛出异常raise 

    """抛出异常 raise 错误类型(错误信息)"""
    name = 'abc'
    if len(name) <= 6:
        raise ValueError('username必须大于6个字符')
    else:
        print('ok')

    自定义异常

    """自定义异常类,继承自已有异常类"""
    class userError(BaseException):
        pass
    
    name = 'abc'
    if name != 'abcd':
        raise userError('user error')

    the end!

  • 相关阅读:
    移步
    使用mingw在windows下搭建c/c++IDE环境
    安全协议系列(一)WEP详解
    碎碎念、我的2013!
    运维常见问题总结
    排序,分页,出现数据重复或缺失
    Terracotta中锁与性能的问题
    【转】Linux系统的性能测试与性能分析
    Distributed Cache Guideline
    脚本大搜罗
  • 原文地址:https://www.cnblogs.com/dinghanhua/p/9980179.html
Copyright © 2011-2022 走看看