python语法错误概述_Python基础教程(一) - 错误和异常

u=4133948748,3028892714&fm=173&app=25&f=JPEG?w=580&h=326&s=2080DC5FD4D0C5DE9E20AD2A0300B093

程序员的一生中,错误几乎每天都在发生。在过去的一个时期,错误要么对程序是致命的,要么产生一堆无意义的输出。所以,人们需要一个柔和的处理错误的方法,而不是终止执行。当然,这一切都是在异常和异常处理出现之前的事了。

Python中的异常

从软件方面来说,错误是语法或是逻辑上的。语法错误是软件的结构上有错误,导致不能被解释器解释或编译器无法编译。这些错误必须在程序执行前纠正。当语法正确后,剩下的就是逻辑错误了。逻辑错误可能是由于不完整或是不合法的输入所致。当Python检测到一个错误时,解释器就会指出当前流已经无法继续执行下去,这时候就出现了异常。我们来看几个异常的例子。

NameError:尝试访问一个未申明的变量SyntaxError:Python解释器语法错误IndexError:请求的索引超过序列范围KeyError:请求一个不存在的字典关键字IOError:输入/输出错误AttributeError:尝试访问未知的对象属性

u=3795389833,1300400857&fm=173&app=25&f=JPEG?w=489&h=243&s=5229F14AC3F4B27840DF47020200A0CE

检测和处理异常

异常可以通过try语句来检测。任何在try语句块里的代码都会被监测,检查有无异常发生。

try语句有两种主要形式:try-except和try-finally。一个try语句可以对应一个或多个except子句,但只能对应一个finally子句,或是一个try-except-finally复合语句。我们还可以在一个except子句里处理多个异常,except语句在处理多个异常时要求异常被放在一个元组里。

u=3099062814,1037919307&fm=173&app=25&f=JPEG?w=422&h=197&s=9A5121CADBF08A4B4ED66909020030CB

with语句

类似try-except-finally,with语句也是用来简化代码的,with语法的基本用法如下:with context_expr [as var]: with_suite。看起来如此简单,但并不如看上去那么容易。简单演示下打开文件的例子。

u=3349179652,2037043835&fm=173&app=25&f=JPEG?w=309&h=54&s=5A29E14AED8F137004FF4303020070CE

触发异常

到目前为止,我们见到的所有异常都是由解释器引发的。由于执行期间的错误而引发。程序员在编写API时也希望在遇到错误的输入时触发异常,为此,Python提供了一种机制让程序员明确的触发异常,这就是raise语句。raise一般的用法是:raise [SomeException [, args, [, traceback]]],第一个参数触发异常的名字。如果有,必须是一个字符串,类或实例。第二个符号为可选的args(比如参数,值),来传给异常。最常见的用法为SomeException是一个类,不需要其他的参数。

异常和sys模块

另一种获取异常信息的途径是通过sys模块中的exc_info()函数。此功能提供了一个3元组的信息,多于我们单纯用异常参数所能获得的。

u=1187561023,2174336707&fm=173&app=25&f=JPEG?w=309&h=202&s=D229F14A5BF48649085AAE0E020060CE

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值