[Python]python编程常见错误异常的原因以及Exception和Raise的异常处理详解(1)

本文详细介绍了Python编程中常见的异常类型,如NameError、ZeroDivisionError等,以及如何通过try...except语句进行异常捕获和处理,确保程序的稳定性和健壮性。
摘要由CSDN通过智能技术生成

什么是异常?

异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。

一般情况下,在Python无法正常处理程序时就会发生一个异常。

异常是Python对象,表示一个错误。

当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

下表是python常见异常

 异常

  原因
NameError尝试访问一个没有申明的变量
ZeroDivisionError除数为0
SyntaxError语法错误
IndexError索引超出序列范围
FileNotFoundError文件未发现错误(比如你要读的文件不存在)
IndentationError缩进
AttributeError尝试访问未知的对象属性
KeyError请求一个不存在的字典关键字
ModuleNotFoundError模块未发现

举例说明

#!/usr/bin/python3
#1.NameError
print(a)
'''报错如下:
Traceback (most recent call last):
  File "./Error_throw.py", line 3, in <module>
    print(a)
NameError: name 'a' is not defined'''


#2.ZeroDivisionError
a,b = 10,0
print(a/b)
'''报错如下:
Traceback (most recent call last):
  File "./Error_throw.py", line 13, in <module>
    print(a/b)
ZeroDivisionError: division by zero'''

#3.SyntaxError
print(1]
'''报错如下:
 File "./Error_throw.py", line 21
    print(1]           ^
SyntaxError: invalid syntax
'''

#4.IndexError
list = [1,2,3,4]
print(list[4])
'''报错如下:
Traceback (most recent call last):
  File "./Error_throw.py", line 29, in <module>
    print(list[4])
IndexError: list index out of range'''

#5.FileNotFoundError
a=open("w.txt","r")
'''报错如下:
Traceback (most recent call last):
  File "./Error_throw.py", line 36, in <module>
    a=open("w.txt","r")
FileNotFoundError: [Errno 2] No such file or directory: 'w.txt'''

#6.IndentationError
if 1==1:
    print(True)
        print(1)
else:
    print(False)
'''报错如下:
 File "./Error_throw.py", line 45
    print(1)
    ^
IndentationError: unexpected indent'''

#7.AttributeError
list = [1,2,3,4]
'''报错如下:
list.append(5)  #It's ok
list.delete(5)  #属性不存在,error
Traceback (most recent call last):
  File "./Error_throw.py", line 56, in <module>
    list.delete(5)  #属性不存在,error
AttributeError: 'list' object has no attribute 'delete'
'''

#8.KeyError
dict = {"ONE":"this is 1", "TWO":"this is 2","THREE":"this is 3"}
print(dict["ONE"]) #It's ok
print(dict["FOUR"]) 
'''报错如下:
Traceback (most recent call last):
  File "./Error_throw.py", line 66, in <module>
    print(dict["FOUR"])
KeyError: 'FOUR'
'''

#9.ModuleNotFoundError
import test_error

'''报错如下:
Traceback (most recent call last):
  File "./Error_throw.py", line 74, in <module>
    import test_error
ModuleNotFoundError: No module named 'test_error'
'''

当我们在运行或者调试程序时遇到了异常,我们要学会阅读异常信息,找到出错的位置,发现异常,并更正它。

异常处理

接下来介绍异常处理,简单的讲,就是捕捉异常信号,做出相应的动作,类似linux当中的signal

当 Python 在执行代码时遇到一个它无法处理的错误或异常情况,它会中断当前的执行流程,并抛出一个异常。异常是程序运行时发生的问题,比如尝试访问不存在的变量、除数为零、文件找不到等。如果不对这些异常进行适当处理,程序就会崩溃并停止运行。

为了确保程序的稳定性和健壮性,我们需要对可能出现的异常情况进行捕获和处理。在 Python 中,可以使用 try...except 语句来捕获和处理异常。 
  try
块中包含了可能引发异常的代码
     而 except 块则定义了当异常发生时应该执行的代码。
     这样,当 try 块中的代码抛出异常时,程序不会立即崩溃,而是跳转到对应的 except 块执行异常处理代码,然后继续执行后续的代码。关于异常处理,看下一节内容详解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值