Python异常处理机制

本文介绍了Python中的常见异常类型,如AttributeError、IOError等,并详细解释了异常处理机制及使用方法。通过示例展示了如何利用try...except进行异常捕获与处理,帮助读者更好地理解并运用异常处理来增强程序健壮性。
摘要由CSDN通过智能技术生成

博客核心内容:


1.常见的异常类型
2.异常处理机制
3.异常处理方法
4.try………catch到底什么时候用


(一)Python中常见的异常类型

AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
IOError 输入/输出异常;基本上是无法打开文件
ImportError 无法引入模块或包;基本上是路径问题或名称错误
IndentationError 语法错误(的子类) ;代码没有正确对齐
IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError 试图访问字典里不存在的键
KeyboardInterrupt Ctrl+C被按下
NameError 使用一个还未被赋予对象的变量
SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
TypeError 传入对象类型与要求的不符合
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
导致你以为正在访问它
ValueError 传入一个调用者不期望的值,即使值的类型是正确的

示例程序1:

#!/usr/bin/python
# -*- coding:utf-8 -*-


try:
    msg = input(">>")
    int(msg)
except Exception as e:
    print("异常的类型是:%s"%type(e))
    print("异常对象的内容是:%s"%e)

运行结果:

>>python
异常的类型是:<class 'ValueError'>
异常对象的内容是:invalid literal for int() with base 10: 'python'

Process finished with exit code 0

示例程序2:

#!/usr/bin/python
# -*- coding:utf-8 -*-


try:
    1 + "python"
except Exception as e:
    print("异常的类型是:%s"%type(e))
    print("异常对象的内容是:%s"%e)

运行结果:

异常的类型是:<class 'TypeError'>
异常对象的内容是:unsupported operand type(s) for +: 'int' and 'str'

Process finished with exit code 0

(二)Python中的异常处理机制
在Python当中,若一个程序在运行的时候出错,Python解释器会自动的在出错的地方生成一个异常对象,而后Python解释器会自动的在出错地方的附近寻找有没有对这个异常对象处理的代码,所谓异常处理代码就是try……except语句,如果没有,Python解释器会自动的将这个异常对象抛给其调用函数,就这样层层抛出,如果在main当中也没有对这个异常对象处理的代码,Python解释器(实际上是操作系统)最后会做一个简单粗暴的处理,将整个程序给终止掉,并将错误的信息在显示屏上输出。
(三)Python中的异常处理方法

try:
    可能出现异常的代码块
except Exception as e:
    print("异常的类型是:%s"%type(e))
    print("异常的内容是:%s"%e)
else:
    print('如果代码块不抛出异常会执行此行代码!')
finally:
    print('不管代码块是否抛出异常都会执行此行代码!')

示例程序1:

#!/usr/bin/python
# -*- coding:utf-8 -*-

try:
    msg = input(">>")
    print(int(msg))
except Exception as e:
    print("异常的类型是:%s"%type(e))
    print("异常的内容是:%s"%e)
else:
    print('如果代码块不抛出异常会执行此行代码!')
finally:
    print('不管代码块是否抛出异常都会执行此行代码!')

运行结果:

>>34
34
如果代码块不抛出异常会执行此行代码!
不管代码块是否抛出异常都会执行此行代码!

(四)异常使用场景
1、异常并不一定使程序的逻辑更加清晰,有的时候会导致程序的逻辑更加混乱,常用于服务器端无法预知客户端的错误场景
2、能用if就用if吧
代码示例:

#!/usr/bin/python
# -*- coding:utf-8 -*-


msg = input(">>")
if msg.isdecimal():
    print(int(msg))
else:
    print("您输入的内容有误,请输入数字!")
Python异常处理机制是一种用来处理程序中出现的错误或异常情况的机制。它包括四个关键字:try、except、else和finally,以及raise语句。通过使用这些关键字,我们可以在程序中捕获并处理异常,从而避免程序崩溃。 在Python中,我们可以使用try和except关键字来捕获代码块中可能发生的异常。try块中的代码被称为被监视的代码,如果在执行try块的过程中发生了异常,那么程序会跳转到与异常类型匹配的except块,并执行其中的代码来处理异常。 除了except块,我们还可以使用else块来定义在try块中没有发生异常时需要执行的代码。这些代码在try块正常执行完毕后被执行。 另外,finally块是一个可选的块,在无论是否发生异常时都会被执行。通常情况下,我们可以在finally块中进行一些扫尾清理工作,比如关闭文件或释放资源。 如果一个异常没有与任何的except块匹配,那么这个异常将会传递给上层的try中。如果Python解释器找不到处理异常的except块,则程序运行终止,Python解释器也将退出。这就是Python异常处理机制的基本原理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python异常处理机制](https://blog.csdn.net/qq_42402854/article/details/128908594)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Python--异常处理机制](https://blog.csdn.net/weixin_53060366/article/details/130077074)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只懒得睁眼的猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值