Python3.2官方文档翻译--异常处理

2024-03-02 20:48

本文主要是介绍Python3.2官方文档翻译--异常处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

8.3 异常处理

编写可以处理可选择的异常是可能的。 看看下面的例子,要求用户输入一个合法的整数类型,但是允许用户打断程序()用control-c或者其他操作系统支持的语言;注意一个用户产生的终端会引发一个keyboardInterrupt 异常。

>>> while True:

... try:

... x = int(input("Please enter a number: "))

... break

... except ValueError:

... print("Oops! That was no valid number. Try again...")

...

Try语句如下工作:

l 首先,执行try句子里面内容。(在tryexcept关键字之间的语句)

l 如果没有异常发生,except语句就会跳过,try语句执行就结束。

l 如果在执行try语句过程中异常发生,剩下的语句就会跳过。 如果发生的 异常名称和except关键字之后的异常相同, except语句就会执行,它时在try语句之后执行的。

l 如果发生没有与except语句异常名称相匹配的异常,它就传递给try语句外部。如果发现没有处理的异常,就会抛出没有处理的异常并且打印出如上面的异常信息。

为了具体处理不同的异常,Try语句可以包含许多except语句。在但最多只有一个异常处理。 处理器只能处理发生发生在相应的try语句中的异常。而不是相同的try中发生的其他异常。

一个execpt可能作为一个括号括起来的元组里,命名多个异常,例如:

... except (RuntimeError, TypeError, NameError):

... Pass

最后一个except子句可以省略异常名称,以作为通配符使用。你需要谨慎使用这个。因为用这种方式很容易隐藏一个实际的程序错误。可以使用这种方法打印一条错误信息,然后重新抛出异常。(允许调用这处理这个异常)

import sys

try:

f = open(myfile.txt)

s = f.readline()

i = int(s.strip())

except IOError as err:

print("I/O error: {0}".format(err))

except ValueError:

print("Could not convert data to an integer.")

except:

print("Unexpected error:", sys.exc_info()[0])

Raise

try ... Except语句中也可以选择添加else语句,如果它存在,必须跟在所有except语句的后面,如果try语句不不想上抛一个异常但但又让接后的代码执行,那么这个语句就非常有用。例如:

for arg in sys.argv[1:]:

try:

f = open(arg, r)

except IOError:

print(cannot open, arg)

else:

print(arg, has, len(f.readlines()), lines)

f.close()

 

使用else子句要比在try后面添加代码要好,因为它可以避免额外的捕捉异常。它们并不是由try... :keywordexcept语句保护的代码所抛出。

当一个异常发生时,它可能有相关联的值,也可以成为异常的参数。参数的存在与类型依赖于异常的类型。

Except语句可以在异常名称后描述一个变量。这个变量与包含参数的异常实例相互绑定。为了方便起见,异常实例定义了_str_()方法以至于不需要调用参数.args可以直接打印参数。你也可以抛出异常前先实例化它,然后给它添加任何想要的属性。

>>> try:

... raise Exception(spameggs)

... except Exception as inst:

... print(type(inst)) # the exception instance

... print(inst.args) # arguments stored in .args

... print(inst) # __str__ allows args to be printed directly,

... # but may be overridden in exception subclasses

... x, y = inst.args # unpack args

... print(x =, x)

... print(y =, y)

...

<class Exception>

(spameggs)

(spameggs)

x = spam

y = eggs

 

如果异常还有参数,对于没处理的异常将会打印在异常信息中的最后一部分中。

异常处理器不仅仅处理那些try子句中立刻发生的异常,也会处理那些try子句中调用的函数内部发生的异常:例如:: 

>>> def this_fails():

... x = 1/0

...

>>> try:

... this_fails()

... except ZeroDivisionError as err:

... print(Handling run-time error:, err)

...

处理运行时的错误: int division or modulo by zero

这篇关于Python3.2官方文档翻译--异常处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/767385

相关文章

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Java进程异常故障定位及排查过程

《Java进程异常故障定位及排查过程》:本文主要介绍Java进程异常故障定位及排查过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、故障发现与初步判断1. 监控系统告警2. 日志初步分析二、核心排查工具与步骤1. 进程状态检查2. CPU 飙升问题3. 内存

Python Pillow 库详解文档(最新推荐)

《PythonPillow库详解文档(最新推荐)》Pillow是Python中最流行的图像处理库,它是PythonImagingLibrary(PIL)的现代分支和继承者,本文给大家介绍Pytho... 目录python Pillow 库详解文档简介安装核心模块架构Image 模块 - 核心图像处理基本导入

javax.net.ssl.SSLHandshakeException:异常原因及解决方案

《javax.net.ssl.SSLHandshakeException:异常原因及解决方案》javax.net.ssl.SSLHandshakeException是一个SSL握手异常,通常在建立SS... 目录报错原因在程序中绕过服务器的安全验证注意点最后多说一句报错原因一般出现这种问题是因为目标服务器

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛