python基础知识12-异常

Python异常处理与自定义异常
本文详细介绍了Python中的异常处理机制,包括基本的try...except结构,如何捕获特定类型的异常,以及如何使用raise主动抛出异常。此外,还探讨了如何自定义异常类型,并通过实例展示了其用法。

几个命令:

sudo apt install tree

tree 当前目录以树形结构展示出来.

tree a 查看a内的所有目录.也可以跟绝对路径.

a = input('请输入您的密码')

将用户输入保存.

1.异常

异常就是报错.

异常:NameError SyntaxError TypeError

异常本身就是类的实例,最大类是BaseException.

1.SystemExit:Python退出异常.

2.KeyboardInterrupt:键盘打断(Ctrl+C)

3.GeneratorExit:生成器退出

4.Exception:普通异常

错误回溯.跟着解释器输出.执行代码:报错行,报错原因.

2.异常处理

基本的try ... except...

try:

f = open('xxoo.py','r') #当xxoo.py不存在时 会打印

except:

print('发生了异常')

try:

x = 0

y = 1/x

except: #捕获异常.

print('发生了异常') #会打印.

200行代码,如果出错了,在第1行,第100行,第200行代码分别写个print('行数'),查看到多少行出错.

3.捕获具体的异常:

try:

a

except NameError:

print('name出错了')

except ZeroDivisionError: #可以叠加写

print('分母为0错误')

except Exception: #不知道具体的异常,所有代码异常的父类.一般都要加错误类,不要空着.

print('')

raise主动抛出异常

try:

raise TypeError('这是一个类型错误')

except NameError;

print('name出错了')

关于Exception及其子类的解释

代码中会出现的异常都是Exception的子类,因此在except中只需要在最后加上Exception即可.在抛出异常的过程中,会从上到下依次对比异常,找到之后就不会再往后查找.

4.更加丰富的结构

try:

x = 0

except Exception:

print('发生了普通的异常') #不打印

else:

print('没有发生异 常') #代码没错误时候执行,打印

finally:

print('怎么都会执行') #打印

if,while,for 后面可以接else

5.断言跟自定义异常类型

不使用断言:

if not False:

raise Exception('条件不满足')

使用断言:

assert True #不抛出异常

assert False #抛出异常

自定义异常类型:

class MyError(Exception): #Exception类的继承

pass

使用:

def func(name):

if name == 'My':

raise MyError('我错了'*10)

try:

print(func('My')) except MyError:

print('捕获到一只My')

 

try:

print(func('My')) except Exception as e: #将自定义的异常存在e当中.

print(e) #把自定义的异常打印出来

转载于:https://www.cnblogs.com/winfun/p/10983848.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值