-
错误和异常的区别
查看全部 -
1:自定义异常必须继承Exception类
2:自定义异常只能主动触发
查看全部 -
1:raise:raise语句用于主动抛出异常
2:assert:assert检查表达式是否为真,如果表达式为假,就会引发AsserttionError错误
查看全部 -
1 :finally:作用:语句为异常处理事件提供清理机制,用来关闭文件或者释放系统资源
查看全部 -
try_except捕获异常分析:
try:
可能错误的语句块
except:
捕获异常的操作
查看全部 -
with语句上下文管理
无论如何都会执行__exit__ 方法
当出现异常时,先进行退出,释放系统资源,再对错误类型进行处理
在示例中,老师显式的自定义了__enter__ 和__exit__ 方法,方便查看整个with as语句执行过程,实际应用时 __enter__ 和__exit__ 方法系统自动提供
查看全部 -
with语句:
with context [as var]:
with_suite
with语句用来替代try-except_finally语句,使代码更加简洁;
context表达式返回是一个对象
var用来保存context返回对象,单个返回值或者元组
with_suit 使用var变量来对context返回对象进行操作
f.seek(file *stream,long offset,int fromWhere) :
os.SEEK_SET 文件的开始位置
with 语句对于没有异常的情况下是可以正常关闭文件的,在with_suite语句遇到异常的情况下,错误异常并没有真正的处理,需要系统进行处理和上报。对with的异常需要进行捕捉和处理。抛异常之前先关闭文件。需要用try语句来捕捉with中的异常。
with语句的实质是上下文管理,包括方法__enter__()和 __exit__()(关闭文件和清理资源)。
with应用场景:
文件操作,进程之间的互斥对象,支持文件上下文的其他对象。
查看全部 -
常见错误:
1、NameError:a没有定义
2、SyntaxError
3、IOError:f=open('1.text)
4、ValueError:a=int('dd')
5、ZeroDivisionError:10/0
6、KeyboardInterrupt:终止正在执行的程序
查看全部 -
错误和异常概念
错误:
1、语法错误:代码不符合解释器或者编译器语法
2、逻辑错误:不完整或者不合法输入或者计算出现问题
异常:执行过程中出现问题导致程序无法执行
1、程序遇到逻辑或者算法问题
2、运行过程中计算机错误(内存不够或者IO错误)
错误和异常的区别
错误:
1、代码运行前的语法或者逻辑错误,语法错误在执行前修改,逻辑错误无法修改
异常:
1、异常产生,检查到错误且解释器认为是异常,抛出异常;
2、异常处理,截获异常,忽略或者终止程序处理异常;
查看全部 -
执行with语句时,调用上下文管理器__enter__方法,var变量接受该方法返回值。
若出现错误,首先关闭文件(调用上下文管理器__exit__方法),然后处理异常(没有真正处理,仍需加try-except处理);
若无错误,则执行后自动关闭文件。
查看全部 -
try-finally语句不是为了捕获异常,主要用于清理工作,用来关闭文件或释放系统资源。
如果遇见异常,则先运行finally模块,再将异常抛给解释器。
try-except-finally、try-except-else-finally:
如果遇见异常,则先执行except处理错误,然后执行finally模块。
查看全部 -
猜数字游戏
import random num = random.randint(0, 100) #产生0到100间的随机数 while True: try: guess = int(raw_input("Enter 1~100:")) except ValueError, e: print "Enter 1~100" continue #不再执行下面语句 if guess > num: print "guess Bigger:", guess elif guess < num: print "guess Smaller:", guess else: print "Guess OK, Game Over" break #跳出循环 print "\n"
查看全部 -
SyntaxError不能捕获!
执行过程:py文件通过python解释器生成二进制的字节码文件,解释器自动对语法进行检查。如果发现问题,在转换过程中会将语法错误抛出,此时代码未真正进行,所以python解释器没有办法截获到语法错误这类运行前的异常。
查看全部 -
捕获异常
try: a except NameError, e: #将异常代入e变量 print "catch Error:", e print "exec over"
如果前面定义了a,则不会抛出异常,直接打印exec over
查看全部
举报