有一种说法:
程序错误可分为,编译时错误和运行时错误。写过c程序的人都知道,c程序是最容易出现一些莫名其妙的运行时错误,其实也不算莫名其妙,只是编程时不小心出错,但是编译时候却毫无问题,运行时却总得不到自己想要的结果。
编译时错误,其实很常见,语法错误之类的都算,在程序编译时候就提示的错误。而运行时错误是程序在加载运行时出现的错误,比如数组下标越界,除数为0等,在编译时候无法判断的错误。
java 、python等语言,使用try。。(catch/except)块来捕获这一类错误,也就是我们常说的异常。其实学过java的人应该比较熟悉Error和Exception这两大类别的错误。。。然后再有不懂的。。赶紧自己先去科普一下。。
python 属于面向对象语言,程序抛出的异常,其实也是一个类。
常见的异常类如下:
异常 描述
NameError 尝试访问一个没有申明的变量
ZeroDivisionError 除数为0
SyntaxError 语法错误
IndexError 索引超出序列范围
KeyError 请求一个不存在的字典关键字
IOError 输入输出错误(比如你要读的文件不存在)
AttributeError 尝试访问未知的对象属性
ValueError 传给函数的参数类型不正确,比如给int()函数传入字符串形
python的try语句有两种风格:
一种是处理异常(try/except/else)
try/except/else风格
try:
<语句>
#运行别的代码
except
<名字>:
<语句>
#如果在try部份引发了'name'异常
except
<名字>,<数据>:
<语句>
#如果引发了'name'异常,获得附加的数据
else:
<语句>
#如果没有异常发生
eg:
a = 0
b = 4
c = 2
try:
f = b / a
#f = b / c
except ZeroDivisionError, e:
print e
else:
print f
-----------------------------------------------------------------------------------------------
二种是无论是否发生异常都将执行最后的代码(try/finally)
try/finally风格
try:
<语句>
finally:
<语句>
#退出try时总会执行
a = 0
b = 4
r = 10
try:
r = b / a
except ZeroDivisionError, e:
print e
finally:
print r
--------------------------------------------------------------------------------------
抛出异常:(有时候程序需要主动抛出异常,然后这种情况我们怎么实现呢?)
格式如下:
raise [SomeException [, args [,traceback]]
第一个参数,SomeException必须是一个异常类,或异常类的实例
第二个参数是传递给SomeException的参数,必须是一个元组。这个参数用来传递关于这个异常的有用信息。
第三个参数traceback很少用,主要是用来提供一个跟中记录对象(traceback)
eg:
try:
raise NameError,('Throw Exception')
except NameError, e:
print e #结果返回:Throw Exception
分享到:
相关推荐
问答互动引出学习目标 讲授法 示范练习 随堂报告 Python-异常处理-教学设计全文共6页,当前为第1页。Python-异常处理-教学设计全文共6页,当前为第1页。《异常处理》教学设计 Python-异常处理-教学设计全文共6页,...
jmu-python-字符串异常处理.txt
3. **更好的错误报告**:Python 3.8在抛出异常时提供了更详细的错误信息,帮助开发者更快定位问题。 4. **性能提升**:Python团队对解释器进行了优化,提高了代码执行速度,特别是在处理大型数据集时。 5. **安全...
5. **错误处理**:异常处理方面,3.10.0引入了`__cause__`和`__context__`属性,帮助开发者更好地追踪和理解异常链。 6. **性能提升**:Python 3.10.0通过编译器优化和其他内部改进,提高了整体性能,尤其是在处理...
- 错误处理:提供异常处理机制,帮助开发者处理可能出现的数据库错误。 6. **注意事项**: - 在Python 3中,推荐使用`pymysql`或`mysql-connector-python`,因为MySQL-python不支持Python 3.x。 - 安装时如果...
- 错误处理:改进了异常处理机制,使得调试和错误报告更准确。 - 性能分析:内置的`timeit`模块和`profile`模块可能有改进,帮助开发者更好地评估和优化代码性能。 2. **AMD64架构** - AMD64,也称为x86_64或x64...
3. **改进的错误处理**:Python 3.8改进了异常处理,允许在except语句中指定多个异常类型。 4. **异步编程**:Python 3.7引入的异步/await语法在3.8中得到了进一步优化,使并发编程更加高效。 5. **性能提升**:每个...
7. **错误处理**:提供详细的错误和异常处理机制,便于调试和问题定位。 8. **元数据查询**:可以通过`DatabaseMetaData`类获取数据库、表、列等元数据信息。 9. **事务处理**:支持显式和隐式的事务控制,可以根据...
7. **错误和异常处理**:Python 3.8对错误消息和异常处理进行了改进,使其更加清晰和易懂,帮助开发者更快定位问题。 8. **安全性和隐私**:Python 3.8加强了对加密和安全相关库的支持,如`ssl`模块,提供了更多的...
3. **高级特性**:涵盖生成器、装饰器、上下文管理器、异常处理、元编程、类型注解等进阶主题,这些都是Python高效编程的关键。 4. **面向对象编程**:Python是面向对象的语言,文档会解释类、对象、继承、多态等...
- **结构化异常处理**:异常处理现在可以使用 with 子句来组合多个 except 子句,使代码更清晰。 - **异步生成器**:在生成器函数中可以使用 `async for` 和 `async yield`,支持异步操作。 - **文本模式和二进制...
Python学习--异常处理思维导图!!来源于网易云课堂王顺子
- 错误处理:处理ANTLR在解析过程中可能抛出的异常,例如语法错误或不符合规则的输入。 总的来说,ANTLR-python-runtime-3.1.3.zip是一个包含ANTLR 3 Python运行时环境的压缩文件,用于在Python中解析和处理自定义...
5. **异常处理**:Python 2.7 使用`raise`语句可以抛出自定义异常,并支持旧式的异常链,便于调试。 6. **IO库**:2.7版本对IO库进行了重构,支持Unicode编码,提高了文本处理能力。 7. **多线程支持**:虽然...
5. **Day41-55**: 这段期间的学习可能专注于Python的进阶主题,例如错误和异常处理,正则表达式,文件和目录操作,以及高级数据结构如堆栈、队列、字典和集合。 6. **Day66-70**: 可能会涵盖网络编程和并发处理,如...
7. **异常处理**:通过学习try/except语句,学习者能学会如何优雅地处理程序运行时可能出现的错误。 8. **模块和包**:掌握如何导入和使用Python标准库以及第三方库,了解如何创建自己的模块和包,以便于代码复用和...
- 异常处理:介绍如何使用try-except语句捕获和处理程序中的错误。 3. 高级特性: - 异步编程:详细解读Python的异步I/O模型,如asyncio库,以及async/await关键字的使用方法。 - 装饰器:介绍装饰器的作用和...
3. **高级编程**:讨论了更复杂的主题,如异常处理、装饰器、元编程等,以及如何编写高效、可维护的Python代码。 4. **库参考**:除了标准库,文档还涵盖了第三方库的简介和使用方法,如NumPy、Pandas、Django等,...
Python的使用涵盖了从基础语法如变量、控制流、函数,到面向对象编程、模块和包的导入、异常处理、文件操作等。此外,Python还有强大的科学计算、数据分析、网络编程、自动化运维、机器学习和人工智能库,如NumPy、...
1. **基础语法**:涵盖了变量、数据类型(如整数、浮点数、字符串、列表、元组、字典和集合)、控制流(条件语句、循环)、函数定义和调用、异常处理等。 2. **模块和包**:讲解如何导入和使用标准库以及第三方库,...