注册 登录
Python基础教程

第一章: 环境搭建,安装Python

第二章: 挑选一款趁手的IDE

第三章: 计算机基础知识

第四章: 命令行基础知识

第五章: 从全局把握Python

第六章: Python语言基础

第七章: Python流程控制

第八章: Python数据类型与运算

第九章: Python字符串类型

第十章: Python列表类型

第十一章: Python元组类型

第十二章: Python字典类型

第十三章: Python集合类型

第十四章: Python函数处理

第十五章: Python文件处理

第十六章: Python面向对象

第十七章: Python异常处理

第十八章: Python模块处理

第十九章: Python高级编程

第二十章: Python项目实战

首页 > Python基础教程 > 第十七章: Python异常处理 > 17.1节: Python中的Exception

17.1节: Python中的Exception

薯条老师 2020-05-25 07:44:45 230449 0

编辑 收藏

广州番禺Python,Java小班周末班培训

薯条老师在广州做Python和Java的小班培训,一个班最多10人,学员的平均就业薪资有11K。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习。培训的课程有Python爬虫,Python后端开发,Python办公自动化,Python大数据分析,Python量化投资,Python机器学习,Java中高级后端开发。授课详情请点击:http://chipscoco.com/?cate=6

17.1.1 什么是Exception?

在讲解Exception的概念之前,我们先进入交互模式,然后在交互模式中让Python解释器来抛出Exception:
>>> girl
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
NameError: name 'girl' is not defined
>>>
>>> def just_throw_exception():
...   print("throw")
...     print("exception")
 File "<stdin>", line 3
   print("exception")
   ^
IndentationError: unexpected indent

在交互模式中,先输入girl然后按下回车键,Python抛出了NameError的错误信息。接着在交互模式中定义一个just_throw_exception的函数,在函数体中,同层次的print函数代码缩进不一致,当我们按下回车键时,Python抛出了IndentationError的错误信息。这里的以Error为后缀的就是Python中的Exception。Exception翻译过来是异常的意思。
那么什么是异常呢?

所谓的异常,简言之,就是程序中的错误。比如直接输出girl变量时,NameError的错误异常,在异常提示中,指示girl这个变量名未定义。同样地,由于在函数just_throw_exception中未遵循Python中的代码缩进规则,所以Python解释器抛出了代码缩进错误的异常:IndentationError。
计算机由硬件和软件组成,所以异常在总体上可分为硬件异常和软件异常,程序员主要处理的是软件异常。

17.1.2 Python中的Exception

在Python中一切皆对象,异常也是一种对象。上文中的NameError,IndentationError等都是一种数据类型,它们直接或间接继承于Exception,Exception是一种类类型。我们可以在交互模式中通过help来进行查找、验证:

>>> help(NameError)
Help on class NameError in module builtins:
class NameError(Exception)
|  Name not found globally.
|
|  Method resolution order:
|      NameError
|      Exception
|      BaseException
|      object
>>> help(IndentationError)
Help on class IndentationError in module builtins:
class IndentationError(SyntaxError)
|  Improper indentation.
|
|  Method resolution order:
|      IndentationError
|      SyntaxError
|      Exception
|      BaseException
|      object
>>> help(SyntaxError)
Help on class SyntaxError in module builtins:
class SyntaxError(Exception)
|  Invalid syntax.
|
|  Method resolution order:
|      SyntaxError
|      Exception
|      BaseException
|      object
>>> help(Exception)
Help on class Exception in module builtins:
class Exception(BaseException)
|  Common base class for all non-exit exceptions.
|
|  Method resolution order:
|      Exception
|      BaseException
|      object

从交互模式的输出可知,NameError继承于Exception, IndentationError继承于SyntaxError, SyntaxError又继承于Exception。而Exception又继承于BaseException。

17.1.3 Python中的标准异常

Python预定义了一系列标准异常,这些标准异常的异常名称都以Error作为后缀。Python中的异常主要有:语法异常,类型异常,名称异常,值异常,数学异常,系统异常,运行时异常。

下表是Python中的常见异常:

image.png

image.png

其它更多的异常类型,同学们可以查阅Python的官方文档。Python预定义的这些异常,是为方便程序员对异常进行处理。在程序中对可能出现的异常进行处理,可以增强程序的健壮性。
健壮性:健壮性又称鲁棒性,主要是针对系统的输入,在输入中存在干扰或数据不合理的情况下,系统仍能进行正常的工作。

通过Python的try, except语句,可以对程序抛出的异常进行处理,在下节内容中会对异常处理进行详细讲解。

17.1.4 知识要点

(1) 所谓的程序异常,简言之,就是程序中的错误
(2) Python中的Exception是一种数据类型,Python中的异常直接或间接继承于Exception,而Exception又继承于BaseException。
(3) Python预定义了一系列标准异常,这些标准异常的异常名称都以Error作为后缀。Python中的异常主要有:语法异常,类型异常,名称异常,值异常,数学异常,系统异常,运行时异常。

17.1.5 高薪就业班

薯条老师在广州做Python和Java的小班培训,一个班最多10人。不在广州的同学可以报名线上直播班,跟线下小班的同学们同步学习打算参加小班培训的同学,必须遵守薯条老师的学习安排,认真做作业和项目。把知识学好,学扎实,那么找到一份高薪的工作就是很简单的一件事。

(1) Python后端工程师高薪就业班,月薪11K-18K,免费领取课程大纲
(2) Python爬虫工程师高薪就业班,年薪十五万,免费领取课程大纲
(3) Java后端开发工程师高薪就业班,月薪11K-20K, 免费领取课程大纲
(4) Python大数据分析,量化投资就业班,月薪12K-25K,免费领取课程大纲

扫码免费领取Python学习资料:


欢迎 发表评论:

请登录

忘记密码我要注册

注册账号

已有账号?请登录