python_错误和异常处理

异常?

简单的说异常就是程序运行过程中出现的各种各样的错误。

异常处理:

解决或者处理我们的异常问题。

错误与异常的分类:

BaseException			  所有异常的基类*
AssertError               断言语句(assert)失败
AttributeError            尝试访问未知的对象属性
EOFError                  用户输入文件末尾标志EOF(Ctrl+d)
FloatingPointError        浮点计算错误
GeneratorExit             generator.close()方法被调用的时候
ImportError               导入模块失败的时候*
IndexError                索引超出序列的范围*
KeyError                  字典中查找一个不存在的关键字*
KeyboardInterrupt         用户输入中断键(Ctrl+c)
MemoryError               内存溢出(可通过删除对象释放内存)
NameError                 尝试访问一个不存在的变量*
NotImplementedError       尚未实现的方法
OSError                   操作系统产生的异常(例如打开一个不存在的文件)*
OverflowError             数值运算超出最大限制
ReferenceError            弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象
RuntimeError              一般的运行时错误
StopIteration             迭代器没有更多的值*
SyntaxError               Python的语法错误*
IndentationError          缩进错误*
TabError                  Tab和空格混合使用*
SystemError               Python编译器系统错误
SystemExit                Python编译器进程被关闭
TypeError                 不同类型间的无效操作*
UnboundLocalError         访问一个未初始化的本地变量(NameError的子类)
UnicodeError              Unicode相关的错误(ValueError的子类)
UnicodeEncodeError        Unicode编码时的错误(UnicodeError的子类)
UnicodeDecodeError        Unicode解码时的错误(UnicodeError的子类)
UnicodeTranslateError     Unicode转换时的错误(UnicodeError的子类)
ValueError                传入无效的参数
ZeroDivisionError         除数为零

异常处理专用语法(流程控制中的一种):

格式1:
    try:
        尝试执行代码
    except:
        处理或者显示错误

格式2:
    try:
        尝试执行代码
    except 错误类型:
        处理或者显示错误

格式3:
    try:
        尝试执行代码
    except 错误类型 as 变量:
        处理或者显示错误

格式4:
    try:
        尝试执行代码
    except 错误类型 as 变量:
        处理或者显示错误
    except 错误类型 as 变量:
        处理或者显示错误
    except 错误类型 as 变量:
        处理或者显示错误
    ...
格式5:
    try:
        尝试执行代码
    except 错误类型 as 变量:
        处理或者显示错误
    except 错误类型 as 变量:
        处理或者显示错误
    except 错误类型 as 变量:
        处理或者显示错误
    ...
    except:
        处理或者显示错误

格式6:
    try:
        尝试执行代码
    except 错误类型 as 变量:
        处理或者显示错误
    except 错误类型 as 变量:
        处理或者显示错误
    except 错误类型 as 变量:
        处理或者显示错误
    ...
    except:
        处理或者显示错误
    else:
        程序没有异常的时候执行的区域

格式7:
    try:
        尝试执行代码
    except 错误类型 as 变量:
        处理或者显示错误
    except 错误类型 as 变量:
        处理或者显示错误
    except 错误类型 as 变量:
        处理或者显示错误
    ...
    except:
        处理或者显示错误
    else:
        程序没有异常的时候执行的区域
    finally:
        无论程序执行是否出现异常都会执行的区域
注意:try…except 不可以当作if…else使用

raise语句:

主动触发异常

raise 异常类(参数)
注:raise语句主动抛出异常,参数为可选。不选为空,选择即为异常的名称。
如:
try:
	raise NameError("名称错误")
except NameError as f:
	print(f)

自定义异常类型:

class 异常类型名称(Exception):
    类成员...
    类成员...

如何使用自定义异常类:

自定义异常类:一般继承Exception,也可继承baseException
raise  异常对象("异常描述")
例:
class TanError(Exception):
    pass
def ages():
    age=int(input('输入年龄:'))
    if age<=0 or age>100:
        raise TanError('年龄只能在0到100岁之间')
# raise 会抛出一个异常
try:
     ages()
except TanError as tan:  # 如果输出定义好的错误说明必须用as
    print(tan)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值