python的异常处理

python用异常对象来表示异常情况。遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序会使用所谓的回溯,中止执行。有时候我们不想在程序遇到错误后终止执行,需要程序向下进行,就用到python中的异常捕捉语句,try except。

raise语句

主动抛出异常,语句在执行中,主动的抛出人为所定义的异常报错。

以下是一些常用异常类:



AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
IOError 输入/输出异常;基本上是无法打开文件
ImportError 无法引入模块或包;基本上是路径问题或名称错误
IndentationError 语法错误(的子类) ;代码没有正确对齐
IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError 试图访问字典里不存在的键
KeyboardInterrupt Ctrl+C被按下
NameError 使用一个还未被赋予对象的变量
SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
TypeError 传入对象类型与要求的不符合
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
导致你以为正在访问它
ValueError 传入一个调用者不期望的值,即使值的类型是正确的
 

一些不常用的异常
ArithmeticError
AssertionError
AttributeError
BaseException
BufferError
BytesWarning
DeprecationWarning
EnvironmentError
EOFError
Exception
FloatingPointError
FutureWarning
GeneratorExit
ImportError
ImportWarning
IndentationError
IndexError
IOError
KeyboardInterrupt
KeyError
LookupError
MemoryError
NameError
NotImplementedError
OSError
OverflowError
PendingDeprecationWarning
ReferenceError
RuntimeError
RuntimeWarning
StandardError
StopIteration
SyntaxError
SyntaxWarning
SystemError
SystemExit
TabError
TypeError
UnboundLocalError
UnicodeDecodeError
UnicodeEncodeError
UnicodeError
UnicodeTranslateError
UnicodeWarning
UserWarning
ValueError
Warning
ZeroDivisionError

一些不常用异常

除了以上一些异常类外,还可以自定义异常类:

使用语句:

class Someexcept(Exception):#继承基类,自定义自己的异常类
    pass

捕捉异常

示例:

try:
    x="12qq"
    print(int(x))
except ValueError:
    print("异常捕捉")

多分支捕捉异常

示例:

try:
    x="12qq"
    y=[1,2,3]
    print(x,y[10])
except ValueError:
    print("值错误")
except IndexError:
    print("索引错误")

异常全捕捉

示例:使用except Exception语句

try:
    x="12qq"
    y=[1,2,3]
    print(x,y[10])
except Exception as a:#as是对异常值的自居
    print(a)

异常捕捉try……except……else语句

示例:在语句中没有异常时,执行else语句中的内容。

try:
    x="12qq"
    y=[1,2,3]
    print(x)
except Exception as a:
    print(a)
else:
    print("语句正常")

finally语句

finally语句在程序中运行时,不管有没有异常都会执行。

finally语句的使用场景一般用于文件关闭或者网络套接字

简单示例:

try:
    x="12qq"
    y=[1,2,3]
    print(x)
except Exception as a:
    print(a)
finally:
    del x
    print(x)#此处打印为印证是都执行finally语句内容。
时间: 2024-10-08 23:23:44

python的异常处理的相关文章

python的异常处理及异常类定义

python的异常处理语法和大多数语言相似: try: try块的语句... except exceptiontype1 as var:#使用as语句获得本次捕获到的异常的实例var except块语句... except exceptiontype2 as var: except块语句... except: except块语句... else: else块语句... finally: finally块语句... 执行的流程分两类: 1.try->若有异常发生->except->fina

what's the python之异常处理

what's the 异常 python程序中会出现异常,即bug.若出现异常程序就报错,异常之后的代码就不会继续往下执行,这是一个正常程序不允许出现的,但是在某些程序交互的时候难免会因为用户输入问题产生异常,这个时候我们就要在程序中加入异常处理的代码来防止因为产生异常而使我们的程序崩溃的情况发生. 异常即错误,错误分两种,一种为语法错误,一种为逻辑错误. 语法错误:程序员在编写代码时因为操作不当产生的错误,此时产生的异常都是相当低级的,处理异常的方式就是人为的手动改正.在编写程序的时候我们一定

(Python)异常处理try...except、raise

转载自https://www.cnblogs.com/Lival/p/6203111.html (Python)异常处理try...except.raise 一.try...except 有时候我们写程序的时候,会出现一些错误或异常,导致程序终止.例如,做除法时,除数为0,会引起一个ZeroDivisionError 例子: ? 1 2 3 4 a=10 b=0 c=a/b print "done" 运行结果: Traceback (most recent call last): Fi

python之异常处理

一.异常处理的作用 python异常处理的用处是针对抛出的异常进行处理使程序后面的代码正常运行(调试代码.或者针对不影响整体运行.不可控的异常出现导致的程序运行) 1.语法导致的异常:应该在程序运行前进行处理 2.逻辑上的异常:try.....except AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常:基本上是无法打开文件 ImportError 无法引入模块或包:基本上是路径问题或名称错误 Indentation

9.python之异常处理

一.python中的错误与异常. 先来说说什么是错误. 在python中错误分为两种 语法错误这种语法错误根本过不了python解释器下面这几种就属于语法错误. 例1: if 输出 File "/Users/macbook/PycharmProjects/untitled1/作业2/test2.py", line 1 if ^ SyntaxError: invalid syntax 例2: def test: pass 例3: class Foo pass 以上这些都是语法错误 2 .

python 超时异常处理

异常处理具体见:[循序渐进学Python]9.异常处理 环境平台:Python2.7.9 + Win8.1 本篇记录一下自己写爬虫的遇到的问题,程序中批量获取图片地址,然后批量保存.由于没有设置网址打开超时,导致程序一直卡在哪里,程序处于假死状态. 经查询得知没有对程序进行超时处理,由于使用的是urllib模块的urlopen,无法直接添加timeout参数(注:python2.6之前的urllib2模块也无法添加timeout参数) 1 import socket 2 import urlli

python专题-异常处理(基础)

之前在学习python的时候有整理过python异常处理的文章,不够简单也不够完整,所以决定再整理一篇,算做补充. http://www.cnblogs.com/cmt110/p/7464748.html python shell >>> open('abc.txt','r') Traceback (most recent call last): File "<stdin>", line 1, in <module> IOError: [Err

Python之异常处理、模块与包

MarkdownPad Document 错误与异常处理 程序中错误分成两种 语法错误:过不了Python解释器 逻辑错误 异常处理 什么是异常处理 Python解释器检测到错误,触发异常,在发生异常时捕捉异常,如果捕捉成功则进入另外一个处理分支,是程序不会崩溃,这就是异常处理 异常处理机制就是来增强程序的健壮性与容错性 常用异常 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常:基本上是无法打开文件 ImportEr

python 学习 异常处理

异常处理实例 while True: num1 = input('num1:') num2 = input('num2:') try: num1 = int(num1) num2 = int(num2) result = num1 + num2 except Exception as ex: print('出现异常,信息如下:') print(ex) 异常处理类型 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常:基本

18.python的异常处理

python中至少包括两种错误:语法错误(syntax errors)和异常(exceptions). 1.语法错误   语法错误,也被称作解析错误 语法分析器指出错误行,并且在检测到错误的位置前面显示一个小“箭头”. 错误是由箭头前面的标记引起的(或者至少是这么检测的).错误会输出文件名和行号,所以如果是从脚本输入的你就知道去哪里检查错误了. 2.异常 即使一条语句或表达式在语法上是正确的,当试图执行它时也可能会引发错误. 运行期检测到的错误称为异常.此时会停止代码的执行,而大多数异常是并没有