欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > Python进阶11-异常问题1

Python进阶11-异常问题1

2025/9/15 4:50:30 来源:https://blog.csdn.net/junjun_1111/article/details/144947621  浏览:    关键词:Python进阶11-异常问题1

来源:《Python从小白到大牛》关东升
很多事情并非总是按照人们自己设计的意愿顺利发展,而是经常出现这样那样的异常情况。

1、异常问题枚举

ZeroDivisionError是除0异常。这是因为在数学上除数不能为0.
程序运行过程中难免会发生异常,发生异常并不可怕,程序员应该考虑到有可能会发生这些异常,编程时应处理这些异常,不能让程序终止,这才是健壮的程序。

2、异常类继承层次

Python中异常根类是BaseException,异常类继承层次如下所示。

BaseException       
+-- SystemExit     
+-- KeyboardInterrupt     
+-- GeneratorExit      
+-- Exception        +-- StopIteration     +-- StopAsyncIteration       +-- ArithmeticError         |  +-- FloatingPointError      |  +-- OverflowError         |  +-- ZeroDivisionError      +-- AssertionError         +-- AttributeError         +-- BufferError          +-- EOFError            +-- ImportError           |  +-- ModuleNotFoundError    +-- LookupError          |  +-- IndexError          |  +-- KeyError           +-- MemoryError         +-- NameError        |  +-- UnboundLocalError      +-- OSError             |  +-- BlockingIOError        |  +-- ChildProcessError       |  +-- ConnectionError      |  |  +-- BrokenPipeError       |  |  +-- ConnectionAbortedError   |  |  +-- ConnectionRefusedError  |  |  +-- ConnectionResetError    |  +-- FileExistsError      |  +-- FileNotFoundError       |  +-- InterruptedError       |  +-- IsADirectoryError       |  +-- NotADirectoryError     |  +-- PermissionError   |  +-- ProcessLookupError      |  +-- TimeoutError      +-- ReferenceError      +-- RuntimeError        |  +-- NotImplementedError   |  +-- RecursionError      +-- SyntaxError          |  +-- IndentationError     |     +-- TabError    +-- SystemError       +-- TypeError     +-- ValueError      |  +-- UnicodeError      |     +-- UnicodeDecodeError   |     +-- UnicodeEncodeError   |     +-- UnicodeTranslateError +-- Warning            +-- DeprecationWarning     +-- PendingDeprecationWarning  +-- RuntimeWarning      +-- SyntaxWarning     +-- UserWarning       +-- FutureWarning     +-- ImportWarning     +-- UnicodeWarning      +-- BytesWarning     +-- ResourceWarning  

从异常类的继承层次可见,BaseException的子类很多,其中Exception是非系统退出的异常,它包含了很多常用异常。如果自定义异常需要继承Exception及其子类,不要直接继承BaseException。另外,还有一类异常是Warning,Warning是警告,提示程序潜在问题。

    提示:从异常类继承的层次可见,Python中的异常类命名主要的后缀有Exception、Error和Warning,也有少数几个没有采用这几个后缀命名的,当然这些后缀命名的类都有它的含义。但是有些中文资料根据一场后缀名有时翻译为“异常”,有时翻译为“错误”,为了不引起误会,本书将他们统一为“异常”,特殊情况会另行说明。

2.3常见异常

Python有很多异常,熟悉几个常见异常是有必要的。

2.3.1AttributeError异常

AttributeError异常试图访问一个类中不存在的成员(包括:成员变量、属性和成员方法)而引发的异常。

2.3.2OSError异常

OSError是操作系统相关异常。Python3.3版本后IOError(输入输出异常)也并入到OSError异常,所以输入输出异常也属于OSError异常。例如"未找到文件"或“磁盘已满”异常。
FileNotFoundError属于OSError异常。

2.3.3IndexError异常

IndexError异常是访问序列元素时,下标索引超出取值范围所引发的异常。

2.3.4KeyError异常

KeyError异常是试图访问字典里不存在的键时而引发的异常,

2.3.5NameError异常

NameError是试图使用一个不存在的变量而引发的异常。

2.3.6TypeError异常

TypeError是试图传入变量类型与要求的不符合时而引发的异常。

2.3.7ValueError异常

ValueError异常是由于传入一个无效的参数值而引发的异常。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词