Python常见错误和异常(4)

SyntaxError: invalid syntax 

解析器会重复出错的行,并在行中最早发现的错误位置上显示一个小“箭头”。错误(至少是被检测到的)就发生在箭头 指向 的位置。同时也会显示文件名和行号,这样你就可以知道错误来自哪个脚本,什么位置。

异常

异常也有不同的类型,异常类型做为错误信息的一部分显示出来,有零除错误( ZeroDivisionError ) ,命名错误( NameError) 和 类型错误( TypeError )等等。

try 语句

(1)首先,执行 try 子句 (在 try 和 except 关键字之间的部分)。 
(2)如果没有异常发生, except 子句 在 try 语句执行完毕后就被忽略了。 
(3)如果在 try 子句执行过程中发生了异常,那么该子句其余的部分就会被忽略。如果异常匹配于 except 关键字后面指定的异常类型,就执行对应的except子句。然后继续执行 try 语句之后的代码。 
(4)如果发生了一个异常,在 except 子句中没有与之匹配的分支,它就会传递到上一级 try 语句中。如果最终仍找不到对应的处理语句,它就成为一个 未处理异常 ,终止程序运行,显示提示信息。

raise 语句

强制指定的异常发生。要抛出的异常由 raise 的唯一参数标识。它必需是一个异常实例或异常类(继承自 Exception 的类)。

>>> try: 
...     raise KeyboardInterrupt ... finally: 
...     print 'Goodbye, world!'

不管有没有发生异常, finally子句 在程序离开 try 后都一定会被执行。当 try 语句中发生了未被 except 捕获的异常(或者它发生在 except 或 else 子句中),在 finally 子句执行完后它会被重新抛出。 try 语句经由 break ,continue 或 return 语句退 出也一样会执行 finally 子句。

with 语句

使文件之类的对象可以 确保总能及时准确地进行清理。













评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值