当前位置: 首页 > 图灵资讯 > 行业资讯> python3 中try 异常调试 raise 异常抛出

python3 中try 异常调试 raise 异常抛出

发布时间:2025-10-07 17:42:29

一、什么是异常?

异常是在程序执行过程中发生的事件,影响程序的正常执行。

一般情况下,当Python无法正常处理程序时,会出现异常。

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

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

常见异常

#Attributeror调用不存在的方法引起的异常
#EOFEror遇到文件末尾引起的异常
#Importeror导入模块错误引起的异常
#Indexeror列表月越界引起的异常
#IOErrorI/O操作引起的异常,如打开文件出错等
#KeyEror使用字典中不存在的关键字引起的异常
#Nameerror使用不存在的变量名引起的异常
#Taberor语句块缩进不正确引起的异常
#Valueerror搜索列表中没有值引起的异常
#ZeroDivisionEror除数为零引起的异常

二、基础异常处理

try/except语句可用于捕捉异常,见下例。

try/except语句用于检测try语句块中的错误,使except语句捕获异常信息并处理。

如果你不想在异常情况下结束你的程序,只需要在try中捕获它。

try的工作原理是,当一个try句子开始时,python会在当前程序的上下文中标记,这样当异常出现时,你就可以回到这里。try句子(except等。)首先执行,然后依赖于执行是否异常。

如果try后的句子在执行过程中出现异常,python将跳回try并执行第一个与异常相匹配的except句子。异常处理后,控制流通过整个try句子(除非在处理异常时出现新的异常)。

如果try后的句子中出现异常,但没有匹配的except句子,异常将提交给上层try或程序的上层(这将结束程序并打印缺失的错误信息)。

如果try子句执行时没有异常,python将执行else语句后的语句(如果有else)控制整个try语句的流通。

无论try是否有异常抛出,都会执行本级try对应的finally。

基础语法

try:
exceptttt检测异常代码段:
执行代码段elseese发生异常后:
代码段finally没有异常执行:
最终执行代码段

例如

print("test1")
try:
s=input()
ifsisNone:
print("s是空对象")
print(len(s))#这句话抛出了异常
exceptTypeError:
print("错误类型的空对象没有长度")
else:
print("noproblem")
finally:
print('endtest1')

三、捕获异常操作

为能捕捉异常,"except"句子必须使用相同的异常来抛出类对象或字符串。

3.1 使用except而不使用任何异常类型

您可以使用except而不使用任何异常类型,以下例子捕获try-except语句中发生的所有异常。但这不是一个很好的方法,我们不能通过这个程序识别特定的异常信息。因为它捕获了所有的异常。

print("test2")
try:
x=1
y=0
z=x/y
except:#捕获所有异常
print('thereisproblem')
else:
print('noproblem')
finally:
print('endtest2')

使用except带来多种异常类型

您还可以使用相同的except语句来处理多个异常信息,这些异常将被放置在一个括号中成为一个元组,如下所示:

try:
except(exception1[,exception2[,...ExceptionN]]]):
发生上述异常之一,执行此代码elsee:
如果代码没有异常执行,则该代码没有异常执行此代码
print('test3')
try:
x=1
y=0
z=x/y
except(NameError,ZeroDivisionError):
print("problemis(NameError,ZeroDivisionError)")
except(RuntimeError,TypeError):
print("problemis(RuntimeError,TypeError)")
except:
print("problem")
raise
else:
print("noproblem")
finally:
print('endtest3')

最后一个except句子可以忽略异常名称,它将被用作通配符。您可以用这种方法打印错误的信息,然后再次抛出异常。

importsys
try:
f=open('myfile.txt')
s=f.readline()
i=int(s.strip())
#exceptOSErroraserr:
#print("OSerror:{0}".format(err))
exceptValueError:
print("Couldnotconvertdatatoaninteger.")
except:
print("Unexpectederror:",sys.exc_info()[0])
foriinsys.exc_info():
print(i)
raiseException('linexxx')
finally:
print("end")

相关文章

python3 中try 异常调试 raise 异常抛出

python3 中try 异常调试 raise 异常抛出

2025-10-07
案例详解:Python类继承机制

案例详解:Python类继承机制

2025-10-07
超详细的介绍Python语句

超详细的介绍Python语句

2025-10-07
讲解用Python处理Excel表格

讲解用Python处理Excel表格

2025-10-07
列表推导式与生成表达式的区别

列表推导式与生成表达式的区别

2025-10-07
python中的装饰器的使用实战

python中的装饰器的使用实战

2025-10-07