"有生就有死,有思考就有缪误"
一,错误(bug)的由来
1949年9月9日,服役于美国海军的格蕾斯·哈珀正带领她的小组进行"马克二号"计算机的研发,在此过程中由大量继电器构成的马克二号计算机突然"死机"停止工作
经过一系列排查,直到下午三时,哈珀在发现了一只被电死的飞蛾夹在继电器之间,由此(Bug)这一计算机领域特定的词汇诞生。
bug-错误/故障
debug-排除故障
二,错误(Error)对照表
1,Error #错误
2,Exit #退出
3,Warining #警告
-Assert[ion] (语句) + Error
-Attribute (属性) + Error
-Import (导入) + Error
-Index (索引) + Error
-File (文件) NOT (未) Found (发现) + Error
-Key (键) + Error
-Keyboard (键盘) Interrupt(中断)
-Lookup (查找) + Error
-Name + Error
-OS (操作系统) + Error
-Syntax (语法) + Error
-Type (类型) + Error
-Indentation (缩进) + Error
-value (值/参数) + Error
-Unicode Encode(编码/Decode解码) + Error
-Runtime (运行) + Error
三,捕获异常
在编程语言中(例如python),当正在运行代码的出现错误(Error)时,往往会导致整套程序(program)的轰然停止,由此在我们的思维中产生了对于Bug的概念。
(对于自上至下一行一行执行代码的python语言来说,错误往往意味着"牵一发而动全身",当第三行的代码出现问题,无论剩余几十、几百行都不会再被执行。)
而要避免这种状况或出于一些其他目的,捕获异常往往是一种绝佳的办法。
1,语法(syntax)结构如下:
#关键字-->try(尝试),except(除了)
接下来是演示部分:
通过以上代码我们可以得知,如若没有设置try-except语句,当程序执行到1/0时会自动抛出错误并停止程序的运行。
当清楚这点后,我们来看看进阶玩法
2,捕获多个或指定异常
语法(syntax)如下:
try:
#代码(code)
except (Error1,Error2,.....) as e:
#代码(code)
在except语句后面增添一个或多个Python当中的错误类型,当在try语句中捕获到相应的数据类型便会将错误信息赋值给变量e(该变量可以自定义名称)并执行except语句后的代码。
捕获一个指定的异常:
接下来是捕获两个指定的异常:
下列的这则代码之所以会出现错误,是因为并没有指定捕捉1/0对应的异常:
3,对所有异常进行捕获
#将except语句的参数写成Exception即可捕获python中的所有异常,如下图:
4,终极写法:
5,在python中可以通过内置模块(model)来查看有关错误异常:
1,导入errno模块 2,使用dir函数
6,assert语句
当assert语句后面的参数返回值为False时,程序会自动抛出一个ASSERTIONERROR异常,从而使程序停止运行。
如下图: