为了账号安全,请及时绑定邮箱和手机立即绑定

【2023年】第57天 认识异常

标签:
Python

一、什么是异常和异常处理

  • 异常就是错误。
  • 异常会导致程序崩溃并停止运行。
  • 能监控并捕获到异常,将异常部位的程序进行修理,使得程序继续正常运行。

异常的语法

try:
	<代码块1>try关键字检查并保护的业务代码
except: <异常的类型>:
	<代码块2> #代码块1出现错误后执行的代码块
# coding:utf-8
def upper(str_data):
    new_str = ''
    try:
        new_str = str_data.upper()
    except:
        print('程序出错了')
    return new_str


result = upper(1)
print("result: ", result)
  • 我们使用upper函数,它可以将字母变为大写,但是我们故意传入数字,数字是没有upper函数的,所以程序会报错,然后等它报错的时候我们用except接收并抛出它。
  • 可以看到最后一条打印语句仅仅打印出的是一个空字符串,他不会打印出我们定义的result变量。

二、捕获通用异常

无法确定是哪种异常的情况下使用的捕获方法

try:
	<代码块>
except Exception as e:
	<异常代码块>
def upper(str_data):
    new_str = ''
    try:
        new_str = str_data.upper()
    except Exception as e:
        print('程序出错了:{}'.format(e))
    return new_str


result = upper(1)
print("result: ", result)

运行结果:
图片描述

三、捕获具体异常

  • 确定是哪种异常的情况下使用的捕获方法
  • except <具体的异常类型> as e
try:
	1/0
except ZeroDivisionError as e:
	print(e)
  • ZeroDivisionError是python内置的具体异常:0不能被整除。
def test():
    try:
        print('111')
        1/0
        print('hello')
    except ZeroDivisionError as e:
        print(e)


test()

运行结果:
图片描述

四、捕获多种异常

捕获多种异常的写法1

try:
	print('try start')
	res = 1/0
	print('try finish')
except ZeroDivision Error as e:
	print(e)
except Exception as e:  # 可以有多个except
	print('This is a pubic except, bug is: %s' %e)
  • except代码块有多个的时候,当捕获到第一个后,不会继续往下捕获。

捕获异常的写法2

try:
	print('try start')
	res = 1/0
	print('try finish')
except(ZeroDivisionError, Exception) as e:
	print(e)
  • except代码后边的异常类型使用元组包裹起来,捕获到哪种抛出哪种。
def test1():
    try:
        print('hello')
        print(name)
    except (ZeroDivisionError, Exception) as e:
        print(e)
        print(type(e))
        print(dir(e))


test1()

运行结果:
图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消