python中try异常处理的使用与传包

本文详细介绍了Python中异常处理的基本用法,包括try、except、else和finally的使用,以及如何自定义异常类。通过实例展示了异常的传递过程,并讲解了在不同情况下异常处理的注意事项。

11、try异常处理

11.1 简写模式

a = 2
b = 0
try:
    print(a / b)
# 当程序出现错误的时候,Python解释器就无法正常运行,打断程序的执行
except Exception as e:
    print('出现错误')
    print(e)

print('hello world!')

展示:
出现错误
division by zero
hello world!

注意点:
1、我们将可能出现问题的语句,放在try这个分支下面
2、如果try分支下的语句发生错误,进入到except分支下面进行处理
3try如果语句发生问题,当前语句之后的语句不再执行

11.2 完整模式

try:
    print(1/0)
except:
    print('except')
else:
    print('else')
finally:
    print('finally')

print('##########')

try:
    print(1/1)
except:
    print('except')
else:
    print('else')
finally:
    print('finally')
    
    
展示:
except
finally
##########
1.0
else
finally

注意点:
1finally不管语句是否正确,将来一定要走的,可以在当前分支做一些统一的操作:例如关闭文件、关闭链接
2else:当语句能够正常执行的时候,走else这个分支

11.3 自定义异常与使用

class LenTypeException(Exception):
    def __init__(self):
        self.errmsg = '长度不符合规范,必须要传入指定类型'
    def __str__(self):
        return self.errmsg

def printinfo(name,age):
    if len(name)<2 or type(name) != str:
        raise LenTypeException
    if type(age) != int:
        raise LenTypeException
try:
    printinfo('小王','18')
except LenTypeException as e:
    print(e)
    
    
展示:
长度不符合规范,必须要传入指定类型

11.4 异常的传递

try:
    try:
        printinfo('小王', '18')
    except (NameError) as e:
        print('这是内部的异常捕获')
        print(e)
except LenTypeException as e:
    print('这是外部的异常捕获')
    print(e)
    
    
展示:
这是外部的异常捕获
长度不符合规范,必须要传入指定类型

注意点:
异常处理可以进行传递,如果自身的异常不能被捕获,就会向外层try进行传递,如果最外层的异常也不能处理的话,就报错

12、传包

import random
random.randint()

from random import randint,randrange
# from numpy.random import randint
randint()

from random import *
randint()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值