python-异常学习笔记
1、异常的概念
代码执行产生错误,无法继续
2、异常产生
3、异常捕获和处理
while True:num = input('请输出一个数字:')print('100 / %s = %s' % (num,100/int(num)))
(1)【已知】事前处理,if,知道对应的条件
(2)【已知】事后处理,try :except ZeroDivisionError:,发现错误后提示【只能捕获一种】
(3)【已知】事后处理,try :except ZeroDivisionError: except ValueError:,发现错误后提示【捕获多种】
while True:num = input('请输出一个数字:')# print('100 / %s = %s' % (num,100/int(num)))try:print('100 / %s = %s' % (num, 100 / int(num)))except ZeroDivisionError:print('请不要输入0,重新输入!')except ValueError:print('请不要输入数值!')
#打印异常详细内容except ValueError as err1:print('请不要输入数值!',err1)
#无论什么异常,都这样抛出来except:print('无论什么异常,都提示这个')except Exception:print('无论什么异常,都提示这个')except Exception as err2:print('无论什么异常,都提示这个',err2)
#打印更加详细的报错异常,可以精确到某行代码
import traceback
while True:num = input('请输出一个数字:')try:print('100 / %s = %s' % (num, 100 / int(num)))except:print('无论什么异常,都提示这个',traceback.format_exc())
(4)finally语句,不管是否异常,都要执行的一段代码,一定放最后
(5)else必须跟在所有的except代码块后面
while True:num = input('请输出一个数字:')try:print('100 / %s = %s' % (num, 100 / int(num)))except:print('error!')else:print('无异常时候执行')finally:print('不管是否异常,均要执行的代码!')
#运用场景:
【1】检查出问题,并提示对应的问题
try:fo = open('XXX')
except:print('请检查文件路径')
【2】遍历所有内容,反馈出哪些有问题。例如运行老的测试用例,核对哪些不能用了
4、异常调用栈
5、自定义
#(1)继承自Exception父类
class NameToolongError(Exception):pass
class NameTooshortError(Exception):pass
#(2)使用raise抛出# raise EnvironmentError
#(3)抛出异常用在
#->当函数里面出现错误,代码无法继续进行执行的时候
#->高数上层调用代码,什么样执行错误产生了
#->有上层调用代码决定如何处理
def inputName():name = input('请输入用户名:')if len(name) > 10:raise NameToolongErrorelif len(name) <5:raise NameTooshortError
try:inputName()
except NameTooshortError:print('短')
except NameToolongError:print('长')
6、assert断言
# tel = input('请输入手机号,11位')
# assert len(tel) == 11,'手机位数异常'
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
