python3.7.4多个异常处理_人生苦短我用Python——6、异常处理

一、常见的异常

1、AssertionError

当assert关键字后面条件为假时抛出AssertionError

assert 1<0

Traceback (most recent call last):

File "", line 1, in

assert 1<0

AssertionError

2、AttributeError

当试图访问对象的属性不存在时返回

mylist.yijiaotu

Traceback (most recent call last):

File "", line 1, in

mylist.yijiaotu

AttributeError: 'list' object has no attribute 'yijiaotu'

3、IndexError

在使用序列时常常会遇到IndexError异常,原因是索引超出序列范围

mylist=[1,2,3]

mylist[3]

Traceback (most recent call last):

File "", line 1, in

mylist[3]

IndexError: list index out of range

4、KeyError

在试图查找字典中不存在的键时会引发KeyError,因此建议使用dict.get()方法:

mydict={"sss":1,"zzzz":2,"cccc":3}

mydict["one"]

Traceback (most recent call last):

File "", line 1, in

mydict["one"]

KeyError: 'one'

5、NameError

当尝试访问一个不存在的变量时,Python会抛出NameError

cccc

Traceback (most recent call last):

File "", line 1, in

cccc

NameError: name 'cccc' is not defined

6、SyntaxError

当遇到SyntaxError时代表Python语法错误

print cccc

File "", line 1

print cccc

^

SyntaxError: Missing parentheses in call to 'print'. Did you mean print(cccc)?

7、TypeError

类型不同的对象是不能相互进行计算的,否则会抛出TypeError异常

1+"1"

Traceback (most recent call last):

File "", line 1, in

1+"1"

TypeError: unsupported operand type(s) for +: 'int' and 'str'

8、ZeroDivisionError

除数为0会引发该异常

1/0

Traceback (most recent call last):

File "", line 1, in

1/0

ZeroDivisionError: division by zero

二、异常的处理

异常捕获可以使用try语句来实现,任何出现在try语句范围内的异常都会被捕获到,try语句有两种实现形式,一种是try-except;另一种是try-finally

1、try-except

针对不同异常设置多个except

try:

1+"1"

1/0

except ZeroDivisionError:

print("除数不能为0")

except TypeError:

print("类型错误")

对多个异常统一处理

try:

ccc

1/0

1+"1"

except (NameError,ZeroDivisionError,TypeError):

print("ERROR!")

捕获所有异常

try:

ccc

1/0

1+"1"

except:

print("ERROR!")

2、try-finally

finally语句块用以确保无论如何都将被执行的内容

3、raise

可以使用raise语句抛出一个异常

raise NameError

Traceback (most recent call last):

File "", line 1, in

raise NameError

也可以使用raise语句抛出一个带参数的异常

raise NameError("也可以使用raise语句抛出一个带参数的异常")

Traceback (most recent call last):

File "", line 1, in

raise NameError("也可以使用raise语句抛出一个带参数的异常")

NameError: 也可以使用raise语句抛出一个带参数的异常

4、else

如果try语句没有任何问题,则执行else里的内容

try:

int('1')

except ValueError:

print("出错了")

else:

print("没有任何问题")

5、with

参考书籍:

0基础入门学习Python(第2版) 小甲鱼 著

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值