问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

异常与错误有什么区别

发布网友 发布时间:2022-05-10 02:20

我来回答

2个回答

懂视网 时间:2022-05-10 06:42

错误和异常概念

错误:

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

热心网友 时间:2022-05-10 03:50

异常用系统机制问题,防止出现的一些底层问题,例如内存溢出、数组下标错误,需要手动提前就会发生异常的代码捕获并抛出可能发生的异常,由系统去解决;
错误是代码的问题,可能是逻辑或者代码写错了,必须修改代码才能解决。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
膀胱癌医生要为什么要检查上尿路? 游览器书签怎样添加到手机桌面 玫瑰花是早上开还是晚上开 玫瑰是晚上开花吗 左拾遗是什么官左拾遗的解释 怎样炖羊肉好吃又烂 怎样炖羊肉软烂无膻味好吃 ...之心度君子之腹的意思以小人之心度君子之腹的解释以小人之心度君子... 以小人之心度君子之腹什么意思以小人之心度君子之腹出处介绍 苹果macbook pro开机音乐是什么 苹果台式电脑声音苹果电脑开机声音怎么设置 吉利丁溶液是什么? 组装一台内存8g,硬盘120g,的电脑主机要多少钱? 以前在迈克电脑店买了一台主机,现在想在本机加一个固态硬盘。要多少钱? 电脑主机里的硬盘大概多少人民币 计划生育服务手册网上怎么办理 国五车辆网上环保注册二维码 现在电脑主机的硬盘多少钱 电脑主机当中的硬盘要多少钱 汽车故障码一汽大众 00258 002589是上证还是深证? 杨贵妃与岭南荔枝的故事 关于岭南佳果—荔枝的传说 荔枝的故事 岭南荔枝的故事是怎样的? 有关荔枝的故事有哪些? 荔枝在中国古代历史上有哪些美丽的故事? 关于荔枝有什么美丽的故事或者传说 海尔冰箱BCD一625W0Ul价格 苹果手机与u盘如何互存 四大银行用英语怎么说?拜托了各位 谢谢 大衣柜镜子对着门好吗? 我家衣柜中间有面镜子对着房间门,这样好吗,有什么说道吗? 衣柜上有镜子,可以对着门口或者床放吗 梦见被马变犀牛凶猛伤老人啥意思? 我家的镜子是贴的那种,我贴在衣柜侧面,门的左边,门关了对着墙,门打开对着门,这样放不知道行不行? 大衣柜的门镜子对着大门如何破解 断头今日意如何全文 "南国烽烟正十年,此头须向国门悬",“死去元知万事空,但悲不见九州同”分别出自谁写的哪首诗? 断头今日意如何 脱手斩得小楼兰 微信公众号里面对立得对公账户,指的是以后转钱都是在这个账户吗?还是可以设置到私人的吗?还是需要法人 今日断头意如何反映的哪个历史时期 微信公众号 请使用与主体一致的对公账号汇款?就是用刚注册的这个公众号汇款吗?在哪汇款啊 《梅岭三章》断头今日意如何?这句在诗中起了怎样的作用为什么 梅岭三章小序有什么作用? 公众号微信小店,收付款通过什么来收付?微信转账还是企业的对公帐号转账? 洗面奶的正确方法.是不是泡沫越多越好/如果是 除了用起泡球之外还有什么办法起泡沫 洗头怎样才能弄出多一点泡沫? 洗头怎样才能弄出多一点泡沫 离婚的被告不出庭怎么办 起诉离婚,被告不去开庭怎么办?