python异常和错误是同一概念吗?为什么?,python错误和异常处理
错误和异常概念
错误:
1.语法错误:代码不符合解释器或编译器的语法。
2.逻辑错误:不完整或非法的输入或计算问题。
异常:程序无法执行,因为执行过程中出现很多问题。
1.程序遇到逻辑或算法问题。
2.操作过程中的计算机错误(内存不足或IO错误)
错误和异常区别
错误:
代码运行前的语法或逻辑错误,
语法错误在执行前修改,逻辑错误不能修改。
异常分为两步:
1.异常发生时,如果检测到错误,解释器认为是异常,就会抛出异常;
2.异常处理、拦截异常、忽略或终止程序处理异常。
常见Python错误
常见错误:在ipython下
1.名称错误
未定义变量时的直接引用。
2.如果为真:语法错误
语法错误
3.f=open(1.txt) : IOError
当试图打开不存在的文件时
4.10/0 :零除法错误
5.a=int(dd) :值错误
转换时遇到错误。
Try - except异常处理(1)
Try-except:异常处理
尝试:
试用套件
例外[,e]:除外
Exception_block1.try用于捕捉try_suite中的错误,并将错误传递给except。
2.Exception用于处理异常。如果异常处理与捕捉异常的设置一致,则使用exception_block来处理异常。
示例:
尝试:
一
例外情况除外,e:
打印数据的异常分析-除了捕获:
案例1:
尝试:
未定义
例外:
打印“catch an except”案例2:
尝试:
如果没有
例外:
Print catch an except case 1:可以捕获异常,因为它是一个运行时错误。
案例2:无法捕捉异常,因为它是语法错误和预运行错误。
案例三:
尝试:
未定义
除了名称错误,e:
打印“捕捉异常”,e
案例4:
尝试:
未定义
除了IOError,e:
打印“捕捉异常”,ecase:可以捕捉异常,因为设置捕捉了NameError异常。
案例4:无法捕获异常,因为设置了IOError,并且不会处理NameError。
Try - except异常处理(2)
Try-except:处理多个异常。
尝试:
试用套件
1 [e]:除外
异常_块1
2 [e]:除外
异常_块2
:除外
异常_阻塞n
Try-except-else用法
尝试:
试用套件
1 [e]:除外
异常_块1
else:
None_exception如果没有异常,执行else语句中的代码。
try-finaly语句
Try-finally语句:
尝试:
试用套件
最后:
do _最后
1.如果try语句没有捕获错误,代码执行do_finally语句
2.如果try语句捕获错误,程序首先执行do_finally语句,然后将捕获到的错误交给python解释器处理
try-finally语句:
规则:try-finally无论是否检测到异常,都会执行finally代码
作用:为异常处理事件提供清理机制,用来关闭文件或者释放系统资源
try-except-finally使用:
try:1.若try语句没有捕获异常,执行完try代码段后,执行finallytry_suite
except:
do_except
finally:
do_finally
2.若try捕获异常,首先执行except处理错误,然后执行finally
try-except-else-finally使用:
try:1.若try语句没有捕获异常,执行完try代码块后,执行else代码块,最后执行finallytry_suite
except:
do_except
else:
do_else
finally:
do_finally
2.若try捕获异常,首先执行except处理错误,然后执行finally
with语句
with语句:
with context [as var]:
with_suite
1.with语句用来代替try-except-finally语句,是代码更加简洁;
2.context表达式返回是一个对象;
3.var用来保存context返回对象,单个返回值或者元祖;
4.with_suite使用var变量来对context返回对象进行操作
……
raise和assert
raise语句
raise语句用于主动抛出异常
语法格式:raise [exception [, args]]
exception: 异常类
args: 描述异常信息的元组
例:
raise TypeErrorassert语句raise TypeError, 'Test Error'
raise IOError, 'File Not Exist'
断言语句:assert语句用于检测表达式是否为真,如果为假,引发AssertionError错误;
语法格式:assert expression [, args]
expression:表达式
args:判断条件的描述信息
例:
assert 7==6Python标准和自定义异常assert 0, 'Test Error'
标准异常:python内建异常,程序执行前就已经存在
自定义异常:
1.python允许自定义异常,用于描述python中没有涉及的异常情况
2.自定义异常必须继承Exception类
3.自定义异常只能主动触发
自定义异常示例:
class FileError(IOError):相关推荐:《Python教程》以上就是python异常与错误区别的详细内容,更多请关注盛行IT软件开发工作室其它相关文章!pass
raise FileError, 'Test FileError'
class CustomError(Exception):
def __init__(self, info):
Exception.__init__(self)
self.errorinfo = info
def __str__(self):
return 'CustomError: %s' % self.errorinfo
try:
raise CustomError('test CustomError')
except CustomError, e:
print 'Error Info : %s' % e
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。