20201210_121_常见异常汇总和说明

本文介绍Python中return语句在异常处理中的使用方式,并列举了多种常见异常及其解决方法,包括语法错误、除数为0错误等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

return 语句和异常处理问题

由于 return 有两种作用:结束方法运行、返回值。我们一般不把 return 放到异常处理结构中,而是放到方法最后。

【例1.1】异常结构中return的使用方式

def test01():
    print('step1')
    try:
        x = 3 / 0
        # return 'a'
    except:
        print('step2')
        print('异常:0不能作为除数')
        # return 'b'
    finally:
        print('step3')
        # return 'c'

    print('step4')
    return 'd'  # 老师:一般不要把return语句放到try、except、else、finally块中,会发生一些意想不到的错误。建议放到最后。


print(test01())

运行结果:
在这里插入图片描述

【例1.2】异常结构中return的使用方式
return不在最后,所以执行到return本来程序执行要终止,但是还是会把finally块的代码执行完,之后就不执行了。

def test01():
    print('step1')
    try:
        x = 3 / 0
        # return 'a'
    except:
        print('step2')
        print('异常:0不能作为除数')
        return 'b'
    finally:
        print('step3')
        # return 'c'

    print('step4')
    # return 'd'  # 一般不要把return语句放到try、except、else、finally块中,会发生一些意想不到的错误。建议放到最后。


print(test01())

运行结果:
在这里插入图片描述

常见异常的解决

Python 中的异常都派生自 BaseException 类,本课时我们列举一些常见的异常,方便初学者掌握。

1.SyntaxError:语法错误
在这里插入图片描述
2.NameError:尝试访问一个没有申明的变量
在这里插入图片描述
3.ZeroDivisionError:除数为 0 错误(零除错误)
在这里插入图片描述
4.ValueError:数值错误
4.1
在这里插入图片描述
4.2
在这里插入图片描述
5.TypeError:类型错误
在这里插入图片描述
6.AttributeError:访问了对象不存在的属性

a = 1
a.kk()

运行报错内容:
在这里插入图片描述
7.IndexError:访问的索引超出了范围

a = [1, 2, 3]
a[5]

运行报错内容:
在这里插入图片描述
8.KeyError:字典的关键字不存在

a = {'name': '李明', 'age': 18, 'salary': 8000}
a['sex']

运行报错内容:
在这里插入图片描述

常见异常汇总

按字母顺序排列

异常名称说明
ArithmeticError所有数值计算错误的基类
AssertionError断言语句失败
AttributeError对象没有这个属性
BaseException所有异常的基类
DeprecationWarning关于被弃用的特征的警告
EnvironmentError操作系统错误的基类
EOFError没有内建输入,达到EOF标记
Exception常规错误的基类
FloatPointError浮点计算错误
FutureWarning关于构造语义将来会有改变的警告
GeneratorExit生成器(generator)发生异常,通知退出
ImportError导入模块/对象失败
IndentationError缩进错误
IndexError序列中没有此索引
IOError输入/输出操作失败
KeyboardInterrupt用户中断执行(通常是输入^C)
KeyError映射中没有这个键
LookupError无效查询的基类
MemoryError内存溢出错误(对Python解释器来说不是致命的)
NameError未声明/初始化对象(没有属性)
NotImplementedError尚未实现的方法
OSError操作系统错误
OverflowError数值运算超出最大限制
OverflowWarning旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning关于特性将会被废弃的警告
ReferenceError弱引用(Weak Reference)试图访问已经垃圾回收了的对象
RuntimeError一般的运行时错误
RuntimeWarning可以的运行时行为(Runtime Behavior)的警告
StandardError所有内建标准异常的基类
StopIteration迭代器没有更多的值
SyntaxErrorPython语法错误
SyntaxWarning可以的语法的警告
SystemError一般的解释器系统错误
SystemExit解释器请求退出
TabErrorTab和空格键混用
TypeError对类型无效的操作
UnboundLocalError访问未初始化的本地变量
UnicodeDecodeErrorUnicode编码时的错误
UnicodeErrorUnicode相关的错误
UnicodeTranslateErrorUnicode转换时的错误
UserWarning用户代码生成的警告
ValueError传入无效的参数
Warning警告的基类
WindowsError系统调用失败
ZeroDivisionError除(或取模)零(所有数据类型)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值