Python语言之错误(Error)

90 阅读3分钟

        "有生就有死,有思考就有缪误"

一,错误(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(除了)

接下来是演示部分:

  屏幕截图 2024-09-11 172038.jpg

屏幕截图 2024-09-11 172357.jpg 通过以上代码我们可以得知,如若没有设置try-except语句,当程序执行到1/0时会自动抛出错误并停止程序的运行。

当清楚这点后,我们来看看进阶玩法

2,捕获多个或指定异常

语法(syntax)如下:

try:

    #代码(code)

except (Error1,Error2,.....) as e:

    #代码(code)

在except语句后面增添一个或多个Python当中的错误类型,当在try语句中捕获到相应的数据类型便会将错误信息赋值给变量e(该变量可以自定义名称)并执行except语句后的代码。

捕获一个指定的异常:

屏幕截图 2024-09-11 173555.jpg

接下来是捕获两个指定的异常:

屏幕截图 2024-09-11 173736.jpg  

下列的这则代码之所以会出现错误,是因为并没有指定捕捉1/0对应的异常: 屏幕截图 2024-09-11 173908.jpg

 

3,对所有异常进行捕获

#将except语句的参数写成Exception即可捕获python中的所有异常,如下图:

屏幕截图 2024-09-11 174240.jpg  

4,终极写法:

屏幕截图 2024-09-11 174710.jpg

 

5,在python中可以通过内置模块(model)来查看有关错误异常:

1,导入errno模块 2,使用dir函数

屏幕截图 2024-09-11 174953.jpg  

6,assert语句

当assert语句后面的参数返回值为False时,程序会自动抛出一个ASSERTIONERROR异常,从而使程序停止运行。

如下图:

屏幕截图 2024-09-11 175536.jpg