`
pkcb526546
  • 浏览: 14877 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

python-异常处理

阅读更多
有一种说法:
程序错误可分为,编译时错误和运行时错误。写过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-异常处理-教学设计.docx

    问答互动引出学习目标 讲授法 示范练习 随堂报告 Python-异常处理-教学设计全文共6页,当前为第1页。Python-异常处理-教学设计全文共6页,当前为第1页。《异常处理》教学设计 Python-异常处理-教学设计全文共6页,...

    jmu-python-字符串异常处理.txt

    jmu-python-字符串异常处理.txt

    python-pcl-master安装包

    Python-PCL(Point Cloud Library)是一个强大的开源库,专门用于处理3D点云数据。它提供了各种算法,包括滤波、分割、表面重建、特征提取、配准等,广泛应用于机器人、无人机、计算机视觉和虚拟现实等领域。这个...

    Python安装包下载python-3.8.2-amd64.exe.zip

    3. **更好的错误报告**:Python 3.8在抛出异常时提供了更详细的错误信息,帮助开发者更快定位问题。 4. **性能提升**:Python团队对解释器进行了优化,提高了代码执行速度,特别是在处理大型数据集时。 5. **安全...

    python-3.10.0-amd64.rar

    5. **错误处理**:异常处理方面,3.10.0引入了`__cause__`和`__context__`属性,帮助开发者更好地追踪和理解异常链。 6. **性能提升**:Python 3.10.0通过编译器优化和其他内部改进,提高了整体性能,尤其是在处理...

    MySQL-python-1.2.3.win32-py2.7 MySQL-python-1.2.3.win-amd64-py2.7

    - 错误处理:提供异常处理机制,帮助开发者处理可能出现的数据库错误。 6. **注意事项**: - 在Python 3中,推荐使用`pymysql`或`mysql-connector-python`,因为MySQL-python不支持Python 3.x。 - 安装时如果...

    Python学习--异常处理思维导图

    Python学习--异常处理思维导图!!来源于网易云课堂王顺子

    mysql-connector-python-2.1.7.tar.gz

    7. **错误处理**:提供详细的错误和异常处理机制,便于调试和问题定位。 8. **元数据查询**:可以通过`DatabaseMetaData`类获取数据库、表、列等元数据信息。 9. **事务处理**:支持显式和隐式的事务控制,可以根据...

    python-3.8.1-amd64环境

    7. **错误和异常处理**:Python 3.8对错误消息和异常处理进行了改进,使其更加清晰和易懂,帮助开发者更快定位问题。 8. **安全性和隐私**:Python 3.8加强了对加密和安全相关库的支持,如`ssl`模块,提供了更多的...

    python-3.10.4-amd64.exe适用于Windows x86_64系统

    - 错误处理:改进了异常处理机制,使得调试和错误报告更准确。 - 性能分析:内置的`timeit`模块和`profile`模块可能有改进,帮助开发者更好地评估和优化代码性能。 2. **AMD64架构** - AMD64,也称为x86_64或x64...

    python-2.7.15.amd64

    5. **异常处理**:Python 2.7 使用`raise`语句可以抛出自定义异常,并支持旧式的异常链,便于调试。 6. **IO库**:2.7版本对IO库进行了重构,支持Unicode编码,提高了文本处理能力。 7. **多线程支持**:虽然...

    Python-100-Days-master.zip

    7. **异常处理**:通过学习try/except语句,学习者能学会如何优雅地处理程序运行时可能出现的错误。 8. **模块和包**:掌握如何导入和使用Python标准库以及第三方库,了解如何创建自己的模块和包,以便于代码复用和...

    Python-100-Days (附源码).zip

    5. **Day41-55**: 这段期间的学习可能专注于Python的进阶主题,例如错误和异常处理,正则表达式,文件和目录操作,以及高级数据结构如堆栈、队列、字典和集合。 6. **Day66-70**: 可能会涵盖网络编程和并发处理,如...

    python-3.7.3-docs-pdf-a4.zip

    - 异常处理:介绍如何使用try-except语句捕获和处理程序中的错误。 3. 高级特性: - 异步编程:详细解读Python的异步I/O模型,如asyncio库,以及async/await关键字的使用方法。 - 装饰器:介绍装饰器的作用和...

    使用python3通过python-gitlab的API来获取gitlab的仓库、用户等信息

    在实际应用中,确保正确处理可能出现的错误和异常是很重要的,比如网络问题、权限问题或无效的API响应。因此,在编写脚本时,应该包含适当的错误处理代码,以确保程序的健壮性。 总的来说,使用Python3和`python-...

    python-3.7.8-docs-pdf-letter.zip

    3. **高级编程**:讨论了更复杂的主题,如异常处理、装饰器、元编程等,以及如何编写高效、可维护的Python代码。 4. **库参考**:除了标准库,文档还涵盖了第三方库的简介和使用方法,如NumPy、Pandas、Django等,...

    Python-3.10.6.tgz

    Python的使用涵盖了从基础语法如变量、控制流、函数,到面向对象编程、模块和包的导入、异常处理、文件操作等。此外,Python还有强大的科学计算、数据分析、网络编程、自动化运维、机器学习和人工智能库,如NumPy、...

    python-3.6.7-docs-pdf-a4

    1. **基础语法**:涵盖了变量、数据类型(如整数、浮点数、字符串、列表、元组、字典和集合)、控制流(条件语句、循环)、函数定义和调用、异常处理等。 2. **模块和包**:讲解如何导入和使用标准库以及第三方库,...

    MySQL-python-1.2.3.win-amd64-py2.7

    8. **异常处理**:提供`OperationalError`, `InternalError`, `ProgrammingError`等异常类,帮助开发者捕获并处理数据库操作中的错误。 9. **连接池**:通过连接池管理,可以复用已建立的连接,提高性能。 在安装...

    python-javabridge-4.0.3-cp38-cp38-win-amd64.zip

    - **异常处理**:Python-JavaBridge能捕获和处理Java抛出的异常,并将其转换为Python异常。 - **多线程支持**:可以创建和管理Java线程,这对于并发执行任务非常有用。 2. **安装**: 从提供的压缩包中,我们...

Global site tag (gtag.js) - Google Analytics