谬误以及异样概念
谬误:
1.语法谬误:代码没有合乎诠释器或许编译器语法
2.逻辑谬误:没有完好或许没有非法输出或许较量争论呈现成绩
异样:执行进程中呈现万体招致顺序无奈执行
1.顺序遇到逻辑或许算法成绩
2.运转进程入彀算机谬误(内存不敷或许IO谬误)
谬误以及异样区分
谬误:
代码运转前的语法或许逻辑谬误,
语法谬误正在执行前修正,逻辑谬误无奈修正
异样分为两个步骤:
1.异样孕育发生,反省到谬误且诠释器以为是异样,抛出异样;
2.异样解决,截获异样,疏忽或许终止顺序解决异样
Python常见谬误
常见谬误:ipython下
1. a : NameError
正在不界说一个变量的时分间接援用
2. if True : SyntaxError
语法谬误
3. f = open('1.txt') : IOError
试图关上一个没有存正在的文件的时分
4. 10/0 : ZeroDivisionError
5. a = int('dd') : ValueError
进行强迫类型转换的时分遇到的谬误
try--except异样解决(1)
try-except:异样解决
try: try_suite except Exception [, e]: exception_block
1.try用来捕捉try_suite中的谬误,而且将谬误交给except解决
2.except用来解决异样,假如异样解决以及设置捕捉异样分歧,应用exception_block解决异样
例:
try: a except Exception, e: print e
try-except捕捉异样剖析:
Case 1:
try: undef except: print 'catch an except'
Case 2:
try: if undef except: print 'catch an except'
case 1:能够捕捉异样,由于是运转时谬误
case 2:不克不及捕捉异样,由于是语法谬误,运转前谬误
Case 3:
try: undef except NameError, e: print 'catch an except', e Case 4: try: undef except IOError, e: print 'catch an except', e
case 3:能够捕捉异样,由于设置捕捉NameError异样
case 4:不克不及捕捉异样,由于设置IOError,没有会解决NameError
try--except异样解决(2)
try-except:解决多个异样
try: try_suite except Exception1 [e]: exception_block1 except Exception2 [e]: exception_block2 except ExceptionN [e]: exception_blockN
try-except--else应用
try: try_suite except Exception1 [e]: exception_block1 else: none_exception
假如不异样,执行else语句中的代码
try--finally语句
try-finally语句:
try: try_suite finally: do_finally
1.假如try语句不捕捉谬误,代码执行do_finally语句
2.假如try语句捕捉谬误,顺序起首执行do_finally语句,而后将捕捉到的谬误交给python诠释器解决
try-finally语句:
规定:try-finally无论能否检测到异样,城市执行finally代码
作用:为异样解决事情提供清算机制,用来封闭文件或许开释零碎资本
try-except-finally应用:
try: try_suite except: do_except finally: do_finally
1.若try语句不捕捉异样,执行完try代码段后,执行finally
2.若try捕捉异样,起首执行except解决谬误,而后执行finally
try-except-else-finally应用:
try: try_suite except: do_except else: do_else finally: do_finally
1.若try语句不捕捉异样,执行完try代码块后,执行else代码块,最初执行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 TypeError raise TypeError, 'Test Error' raise IOError, 'File Not Exist'
assert语句
断语言句:assert语句用于检测表白式能否为真,假如为假,诱发AssertionError谬误;
语法格局:assert expression [, args]
expression:表白式
args:判别前提的形容信息
例:
assert 7==6 assert 0, 'Test Error'
Python规范以及自界说异样
规范异样:python内建异样,顺序执行前就曾经存正在
自界说异样:
1.python容许自界说异样,用于形容python中不触及的异样状况
2.自界说异样必需承继Exception类
3.自界说异样只能自动触发
自界说异样示例:
class FileError(IOError): 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
相干保举:《Python教程》
以上就是python异样与谬误区分的具体内容,更多请存眷资源魔其它相干文章!
标签: Python python教程 python编程 python使用问题
抱歉,评论功能暂时关闭!