Bug

一、Bug的由来及分类

(1)粗心导致的语法错误 SyntaxError

  自查宝典

漏了末尾的冒号,如if,循环语句,else语句

     缩进错误,该缩进的没缩进,不该缩进的瞎缩进

              把英文字符携程中文字符,比如说:冒号、引号、括号

字符串拼接的时候,把字符串和数字拼在一起

没有定义变量,比如说while 的循环条件的变量

‘==’比较运算符和‘=’赋值运算符的使用

(2)知识点掌握不熟练导致的错误

    索引越界问题 IndexError  

lst =[1,2,3,4]
print(lst[4])

IndexError: list index out of range

(3)思路不清导致的问题解决方案

   使用print()函数

   使用‘#’暂时注释部分代码

(4)被动掉坑:用户操作错误或一些例外情况

  try:

    可能会出现异常的代码

  except   异常类型:

    报错后执行

try:
    a = int(input('请输入第一个数字:'))
    b= int(input('请输入第二个数字:'))
    c = a / b
    print(c)
except ZeroDivisionError:  #异常处理代码
    print('除数不能为0奥!')

结果:

请输入第一个数字:10
请输入第二个数字:0
除数不能为0奥!

try...excpt...else..

若try中没有抛出异常,则执行else部分

try:
    a = int(input('请输入第一个数字:'))
    b= int(input('请输入第二个数字:'))
    c = a / b
except ZeroDivisionError:
    print('除数不能为0奥!')
else:
    print('计算结果为:',c)

try..except..else...finally结构

finally块无论是否发生异常都会执行,能用来释放try中申请的资源。

二、Python中常见的异常类型

(1)ZeroDivisionError      除0的异常

(2)IndexError     索引的异常

(3)KeyError    没有键的异常

(4)NameError  未声明/初始化对象

(5)SyntaxError  Python语法错误

(6)ValueError  传入无效的参数

三、异常处理机制

使用traceback模块打印异常信息

import  traceback

try:

  print(‘-----’)

  num=10/0

except:

  traceback.print_exc()

 

 

 

 

 

 

 

 

 

 

 

 

上一篇:Day 15 异常捕获


下一篇:龙珠计划学习记录