首页 > 编程语言 >Python异常处理

Python异常处理

时间:2022-09-30 21:22:46浏览次数:55  
标签:raise Python 捕获 处理 error 异常 代码

认识异常

通俗讲,异常就是程序运行中报的错。
异常是Python对象,表示一个错误。
当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行

异常的类型

Python程序运行出错时产生的每个异常类型都对应一个类,程序运行时出现的异常大多继承自Exception类,Exception类又继承自异常类的基类BaseException。Python中异常类的继承关系如下图:

异常类的继承关系

BaseException类是所有异常类型的基类,它派生了4个子类:ExceptionKeyboardInterruptGeneratorExitSystemExit。其中,Exception是所有内置的、非系统退出的异常的基类;KeyboardInterrupt是用户中断执行时会产生的异常;GeneratorExit表示生成器退出异常;SystemExit表示Python解释器退出异常。

常见异常

  1. NameError
    NameError是程序中使用了未定义的变量时引发的异常。
  2. IndexError
    IndexError是程序越界访问时引发的异常。
  3. AttributeError
    AttributeError是使用对象访问不存在的属性引发的异常。
  4. FileNotFoundError
    FileNotFoundError是未找到指定文件或目录时引发的异常。

异常捕获语句

1、使用try-except语句捕获异常

try:
   可能出错的代码
except [异常类型 [as error]]:   # 将捕获到的异常对象赋值给error
   捕获异常后的处理代码

2、异常结构中的else子句

try:
   可能出错的代码
except [异常类型 [as error]]:         # 将捕获到的异常对象赋值给error
   捕获异常后的处理代码
 else:
   没有异常的处理代码

3、异常结构中的finally子句

try:
   可能出错的代码
except [异常类型 [as error]]:           # 将捕获到的异常对象赋值给error
   捕获异常后的处理代码
 finally:
   一定执行的代码

抛出异常

Python程序中的异常不仅可以自动触发,还可以由开发人员使用raise语句和assert语句主动抛出。
1、使用raise语句抛出异常

raise 异常类                    # 格式1:使用异常类名引发指定的异常
raise 异常类对象                 # 格式2:使用异常类的对象引发指定的异常
raise                          # 格式3: 使用刚出现过的异常重新引发异常

2、使用assert语句抛出异常

assert表达式[, 异常信息]

异常的传递

如果程序中的异常没有被处理,默认情况下会将该异常传递到上一级,如果上一级仍然没有处理异常,那么会继续向上传递,直至异常被处理或程序崩溃。

标签:raise,Python,捕获,处理,error,异常,代码
From: https://www.cnblogs.com/victoryhan/p/16728873.html

相关文章

  • 使用Python制作疫情变化图
    ​Python可以简化这个工作,提高我们的工作效率。ArcPy是一组提供了地理数据分析、数据转换、数据管理和地图自动化的工具包,会随ArcMap一同安装。本次我们用到的是ArcPy的地图......
  • 9、python正式篇 数据类型内置方法和字符编码
    目录一、数据类型内置方法1、字典dict内置方法1.1、类型转换2、字典必须要掌握的方法2.1、取值方式2.2、修改内部数据值2.3、删除数据2.4、统计字典中键值对个数2.5、字典......
  • 配置IIS使用Python
    打开IIS管理器选择功能视图,然后选择ISAPI和CGI限制打开后,在右侧操作,点击添加,会出现下图所示按图中提示填写相应部分,在选择路径时,默认可能是dll文件,改成全部文......
  • 解决Anaconda关联VSCode使用conda运行Python报错(无法将“conda”项识别为 cmdlet、函
    错误刚安装好Anaconda之后创建好VSCode环境运行Python会报错,但是仍然是可以正常运行,强迫症想解决报错PSC:\Users\Satan\Documents\Code\Python>condaactivatePyth......
  • Python爬虫详解
    1、任务介绍需求分析爬取豆瓣电影Top250的基本信息,包括电影的名称,豆瓣评分,评价数,电影概况,电影链接等。https://movie.douban.com/top2502、基本流程2.1、准备工作通......
  • python調用wasm
    安裝wasm-pack cargoinstallwasm-pack新建rustlib項目 cargonew--lib<projectname>配置Cargo.toml [package] name="rust_wasm" version="......
  • Python抖音视频去水印,并打包成exe可执行文件
    前言抖音里面的视频保存之后,会发现全都带有水印,所以如何解决视频去除水印就很有必要,所以教程来了,本次教程不仅会教大家如何去除视频里的水印,并且教大家将程序制作成exe可......
  • try-except异常
    在Windows中使用SEH异常WindowsSEH异常处理,可以用结构体typedefstruct_EXCEPTION_REGISTRATION_RECORD{struct_EXCEPTION_REGISTRATION_RECORD*Next; 下一个......
  • Python学习路程——Day08
    Python学习路程——Day08目录Python学习路程——Day08字典相关操作1、类型转换2、字典取值3、修改值的数据与新增键值对4、删除数据5、统计字典中键值对的个数6、字典三剑......
  • Python Markdown解析利器----mistune详细用法记录
    @目录小试牛刀开始使用mistunemistune简单使用mistune高级用法(自定义mistune)mistune中插件插件使用方法(以删除线(strikethrough)为例)插件包名内置插件删除线(striket......