第八章异常

异常

异常的概念

异常捕捉

基本方法

复制代码
f=None
try:
    f=open("D:\\python-code\\python-learn\\07_文件操作\\word.txt",'r',encoding="utf-8")
except:
    f=open("D:\\python-code\\python-learn\\07_文件操作\\word.txt",'w',encoding="utf-8")
print(f.read())
f.close()

捕获单个指定异常

复制代码
"""
try:
    ...
except 异常类型 as 变量:
    处理代码
可以针对特定的异常做捕获,如果出现的异常是我们所写的,则捕获成功,如果不是,则无法捕获

"""
try:
    1/0
except ZeroDivisionError as e: # 捕获的是ZeroDivisionError
    print("憨货,不能除以0",e) # e是打印异常信息

运行结果:

捕获多个指定异常

复制代码
# 可以捕获多个异常,但是无法区分
try:
    open("asf",'r')
except(ZeroDivisionError,FileNotFoundError) as e:
    print("有异常了,异常是:",e)
print("=================================")
# 捕获多个异常同时区分
try:
    d={}
    print(d['gg'])
    open("adf",'r')
except FileNotFoundError as e:
    print("文件没找到",e)
except ZeroDivisionError as e:
    print("除以0异常",e)
except KeyError as e:
    print("字典没有这个key")

运行结果:

捕获全部异常*

复制代码
"""
需求:不关心具体是什么异常,反正有问题就捕获掉
"""
try:
    d={}
    print(d['fdf'])
    1/0
except Exception as e:
    print("出问题了,问题是",e)

运行结果:

抓取出问题的第一个异常,自动告诉你是什么异常

异常捕获else(没用)

复制代码
"""
如果抓住异常了,则处理
如果没异常呢?也可以有处理
"""
try:
    print(1)
except Exception as e:
    print("有问题了",e)
else: # else 可写可不写,相当于不写
    print("一切正常")

运行结果:

异常捕获finally

复制代码
"""
有异常了,应该怎么处理 用except抓
没有异常应该怎么处理 用else
不管有没有异常,必做的事情 finally
"""
try:
    1/0
except Exception as e:
    print("有问题:",e)
else:
    print("一切正常")
finally:
    print("有没有问题,我都执行")

运行结果:

异常有传递性

python模块

模块的概念

模块的导入

自定义模块*

自摸形式

内置变量__name__**

复制代码
B.py
def say_hi():
    print('hello world')
def wangwang():
    print("汪汪")
def add(x,y):
    return x+y
name='周杰伦'
age=11
height=172.56
print(__name__)
# 如果本文件B直接执行,则__name__会被赋值为"__main__"
# 如果文件B被import或from导入A,在A文件中运行,则B的内置变量__name__会被赋值为文件名称(B)
# __name__是python内置变量,任何代码文件都有
# 我们可以通过print(__name__)看是在本文件中运行还是在被导入的文件中运行

A.py
import B

运行结果:运行B.py:main 运行A.py:B

if name=="main"表示,只有当程序是直接执行的才会进入if内部,如果被导入的,则if无法进入

python包

包的概念

导入包(其实就是导入模块)

相关推荐
默_笙3 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
qq_426003963 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技3 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时3 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
C语言小火车3 天前
C/C++ 为什么需要编译器?
开发语言·c++
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1233 天前
2026年第38周GitHub趋势周报
python·科技·github