python语法错误检查_python-21-异常的检查和处理

错误

语法错误

Python 的语法错误或者称之为解析错,是初学者经常碰到的,如下实例

while True print('Hello world')

File "", line 1, in ?

while True print('Hello world')

^

SyntaxError: invalid syntax

这个例子中,函数 print() 被检查到有错误,是它前面缺少了一个冒号 : 。

语法分析器指出了出错的一行,并且在最先找到的错误的位置标记了一个小小的箭头。

异常

错误 不等于 异常,即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。

实例

>>> 10 * (1/0) # 0 不能作为除数,触发异常

Traceback (most recent call last):

File "", line 1, in ?

ZeroDivisionError: division by zero

>>> 4 + spam*3 # spam 未定义,触发异常

Traceback (most recent call last):

File "", line 1, in ?

NameError: name 'spam' is not defined

>>> '2' + 2 # int 不能与 str 相加,触发异常

Traceback (most recent call last):

File "", line 1, in

TypeError: can only concatenate str (not "int") to str

异常以不同的类型出现,这些类型都作为信息的一部分打印出来

异常处理

ff8bb38141ad5c39fd29f46eb9c07846.png

大多数的异常都不会被程序处理,都以错误信息的形式展现在这里:

异常是在出现错误时采用正常控制流以外的操作;

异常处理的一般流程是:检查到错误,引发异常;对异常进行捕获的操作。

try:

except Exception:

finally:

以下例子中,让用户输入一个合法的整数,但是允许用户中断这个程序(使用 Control-C 或者操作系统提供的方法)。用户中断的信息会引发一个 KeyboardInterrupt 异常。

while True:

try:

x = int(input("请输入一个数字: "))

break

except ValueError:

print("您输入的不是数字,请再次尝试输入!")

try 语句按照如下方式工作;

首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。

如果没有异常发生,忽略 except 子句,try 子句执行后结束。

如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。

如果一个异常没有与任何的 except 匹配,那么这个异常将会传递给上层的 try 中。

一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。

处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。

一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组,例如:

except (RuntimeError, TypeError, NameError):`

pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值