自动化测试工程师面试必问的异常处理

 异常处理

一、作为一个IT从业者,在工作中我们经常会听到两个词,异常或者异常处理。那么到底什么是异常处理呢?异常又有哪些种类呢?

1、为了增加友好性、容错性和健壮性,当程序出现问题时,给用户一个我们希望他看到的页面,其次当一段代码出现问题时,通过异常处理让用户可以继续操作其他的步骤,不至于系统崩溃或报错终止。

2、异常种类常见的有以下几种:

NameError 尝试访问一个没有申明的变量

ZeroDivisionError 除数为0

SyntaxError 语法错误

IndexError 索引超出序列范围

KeyError 请求一个不存在的字典关键字

IOError 输入输出错误(比如你要读的文件不存在)

AttributeError 尝试访问未知的对象属性

ValueError 传给函数的参数类型不正确,比如给int()函数传入字符串形

       如果想要了解更多,可以在pycharm中输入一个异常然后按住ctrl再点击鼠标,进入到异常类详细了解,在此不多做赘述。当然我们也可以自己定义哦!!!!

二、在这儿可能会存在疑问,既然异常就是代码过程中的错误,那让他直接报错不就可以了,为什么要进行处理呢?

     1、异常的出现并不一定是绝对的,比如一个表达式,除数不能为0,人数不能为小数,所以是否报错取决于输入者。

     2、异常处理可以保证代码在报错时不会报出一些让用户无法接受的错误。

     3、保证在报错的情况下系统依然可以正常运转。

     4、代码更易组织,更清晰,复杂的工作任务更容易实现;

     5、毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了

      例如以下这段代码,如果不进行异常处理,大家可以找一下会出现哪些问题呢?
 

 异常处理

一、作为一个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.可能报什么错误,了解了以上几种

       我们就能够轻松的掌握了。代码是我们自己写的,当然了解。采用方式方法已总结,只要熟悉判断语句的相信

       聪明的大家都可以掌握。至于报的错误直接进入类中查看即可,童鞋们赶紧行动起来吧!!!


END

     该段代码中人数不能为小数,除数不能为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.可能报什么错误,了解了以上几种

       我们就能够轻松的掌握了。代码是我们自己写的,当然了解。采用方式方法已总结,只要熟悉判断语句的相信

       聪明的大家都可以掌握。至于报的错误直接进入类中查看即可,童鞋们赶紧行动起来吧!!!

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

在我的QQ技术交流群里(技术交流和资源共享,广告勿扰)

可以自助拿走,群号:310357728 群里的免费资料都是笔者十多年测试生涯的精华。还有同行大神一起交流技术哦

如果对你有一点点帮助,各位的「点赞」就是小编创作的最大动力,我们下篇文章见!

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值