自动化测试工程师面试必问的异常处理
Posted 测试那些事
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化测试工程师面试必问的异常处理相关的知识,希望对你有一定的参考价值。
异常处理
一、作为一个IT从业者,在工作中我们经常会听到两个词,异常或者异常处理。那么到底什么是异常处理呢?异常又有哪些种类呢?
1、为了增加友好性、容错性和健壮性,当程序出现问题时,给用户一个我们希望他看到的页面,其次当一段代码出现问题时,通过异常处理让用户可以继续操作其他的步骤,不至于系统崩溃或报错终止。
2、异常种类常见的有以下几种:
NameError 尝试访问一个没有申明的变量
ZeroDivisionError 除数为0
SyntaxError 语法错误
IndexError 索引超出序列范围
KeyError 请求一个不存在的字典关键字
IOError 输入输出错误(比如你要读的文件不存在)
AttributeError 尝试访问未知的对象属性
ValueError 传给函数的参数类型不正确,比如给int()函数传入字符串形
如果想要了解更多,可以在pycharm中输入一个异常然后按住ctrl再点击鼠标,进入到异常类详细了解,在此不多做赘述。当然我们也可以自己定义哦!!!!
二、在这儿可能会存在疑问,既然异常就是代码过程中的错误,那让他直接报错不就可以了,为什么要进行处理呢?
1、异常的出现并不一定是绝对的,比如一个表达式,除数不能为0,人数不能为小数,所以是否报错取决于输入者。
2、异常处理可以保证代码在报错时不会报出一些让用户无法接受的错误。
3、保证在报错的情况下系统依然可以正常运转。
4、代码更易组织,更清晰,复杂的工作任务更容易实现;
5、毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了
例如以下这段代码,如果不进行异常处理,大家可以找一下会出现哪些问题呢?
def deviation():
try:
print("---------------------------分苹果了---------------------------")
apple = int(input("请输入苹果的数量"))
childer = int(input("请输入孩子的数量"))
if apple<childer:
raise ValueError("苹果太少了")
result = apple/childer
remain = apple-result*childer
if remain>0:
print(apple,"个苹果,平均分配给",childer,'个小朋友,每人分',result,'个剩下',remain,'个')
else:
print(apple, "个苹果,平均分配给", childer, '个小朋友,每人分', result)
except ZeroDivisionError:
print("苹果不能被0个小朋友平分")
finally:
print("这段代码最终必须要执行")
该段代码中人数不能为小数,除数不能为0,如果不进行异常处理,代码可能随时报错,程序可能随时终止,因此做好异常处理是写好代码的基础。
三、那么异常处理的方式就只有上述一种吗?答案当然时否定的。
以下对异常处理的方法进行了总结,当然都很简单,相信大家也都能看懂。
1.try:要执行的代码块
except 异常名称:
print(“异常提示”)
2.try:要执行的代码块
except (异常名称)as 别名:
print(“异常提示”)
3.try:要执行的代码块
except (异常名称)as 别名:
print(“异常提示”)
except (异常名称)as 别名:
print(“异常提示”)
4.try:要执行的代码块
except (异常名称)as 别名:
print(“异常提示”)
except (异常名称)as 别名:
print(“异常提示”)
else:print(“异常提示”)
5.2.try:要执行的代码块
except (异常名称)as 别名:
print(“异常提示”)
finally:
最终必须要执行的代码块
6.raise直接抛出异常
相信通过这篇文章大家对异常处理已经有一个深刻的了解,但是对于代码还是要多练习才能知道其中的奥妙。
总结:异常处理无非分三个部分,1.那段代码要处理;2.采用什么方式;3.可能报什么错误,了解了以上几种
我们就能够轻松的掌握了。代码是我们自己写的,当然了解。采用方式方法已总结,只要熟悉判断语句的相信
聪明的大家都可以掌握。至于报的错误直接进入类中查看即可,童鞋们赶紧行动起来吧!!!
如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到 902061117,群内会有不定期的分享测试资料。
如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。
好文推荐
2021软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!
以上是关于自动化测试工程师面试必问的异常处理的主要内容,如果未能解决你的问题,请参考以下文章
去面试没把握?担心面试官问的偏?百度测试工程师给你总结了各阶段必问的知识!建议收藏