程序的异常处理

本文介绍了编程中异常和错误的区别,异常是预见的例外情况,而错误是不可预见的程序错误。通过示例解释了Python中的异常信息,包括Traceback、异常类型和错误内容。接着详细阐述了try-except语句的使用,包括基本用法和进阶结构,如else和finally子句,用于异常处理和程序流程控制。
摘要由CSDN通过智能技术生成

1.异常和错误
    异常错误是两个相似但不同的概念。
    再进行编程时,常常会因为各种原因而出现不可控的错误,会引起程序执行错误并退出
    对于我们可以预见的例外情况,我们叫他 “ 异常 ” ;对于不可以预见的例外情况称为 “ 错误 ” 。

异常例如:程序希望获得(输入)数字,却得到了其它字符输入、打开一个错误的文件等等。
错误则是:因为一些程序编码逻辑产生的不可预见的例外情况,错误发生后程序无法恢复执行,而且程序本不该处理这类可能的例外。

2.异常信息
    有如下程序:

>>> num = eval(input("请输入一个整数:"))
>>> print(num)
>>>
请输入一个整数:no
Traceback (most recent call last):
  File "d:\VS Code.txt\code-python\1.py", line 1, in <module>
    num = eval(input("请输入一个整数"))
  File "<string>", line 1, in <module>
NameError: name 'no' is not defined

    可以看到,在运行程序时,当我们输入错误的信息,Python解释器返回了异常信息,并退出程序。该异常信息按照固定格式输出,我们可以通过阅读它,获取程序有关异常的信息。

    Traceback:异常回溯标记
     “d:\VS Code.txt\code-python\1.py”:异常文件路径
     line 1:异常发生的代码行数
     NameError:异常类型
     name ‘no’ is not defined:异常内容提示

3.try-except语句
    语法格式如下:

try:
	<语句块1>
except <异常类型><语句块2>

    语句块1是正常执行的程序内容,当 发生异常时 执行 except 保留字后面的语句,为语句块1增加异常处理。

4.进阶用法
    语法格式如下(是分支结构的一种表达方法):

try:
	<语句块1>
except <异常类型><语句块2>
...
except <异常类型><语句块N-1>
except<语句块N>

    其中,第 1 个到第 N 个 except 语句后面都指定了异常类型,说明这些 except 所包含的语句块只处理这列类型的异常。最后一个 except 语句没有指定任何类型,表示它对应的语句块可以处理所有其他异常(即把所以其他的没有指明的异常统一处理)。
    也可以在结尾使用保留字 “ else ”,“ finally ” 。
    语法:

try:
	<语句块1>
except <异常类型><语句块2>
...
except <异常类型><语句块N-1>
except<语句块N>
else:
	<语句块N+1>
finally:
	<语句块N+2>

    else:可以看作是,当程序正常执行时,才会被执行的一种追加处理。若程序出现异常,则(<语句块N+1>)不会被执行。
    finally:无论程序是否发生异常,(<语句块N+2>)最后都会被执行。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值