您的位置:首页 > 编程语言 > Python开发

Python随记(11)异常处理 try语句

2020-03-29 19:43 1621 查看

异常处理

  1. AssertionError:断言语句(assert)失败:就是当assert这个关键字后面的条件时假时,一般用于测试程序。
  2. A他tributeError:长是访问未知的对象属性。
    list.a >>AttributeError:'list' object has no attribute 'a'
  3. IndexError: 索引超出序列的范围
  4. KeyError: 字典中查找一个不存在的关键字。
  5. NameError: 尝试访问一个不存在的变量。
  6. OSError: 操作系统产生异常,像打开了一个不存在的文件会引发FileNotFoundRrror(OSError的子类)
  7. SynataxError: 语法错误
  8. TypeError: 不同类型间的无效操作
  9. ZeroDicisonError: 除数为零
  10. IndentationError: 缩进错误
  11. ValueError: 传入无效参数。

try-except语句,try-finally语句,raise语句,else语句,with语句

  1. try-except 用于检测和处理异常
try:
x=int(input('请输入一个数字:'))
except:
print('您输入的不是数字啦')

如果在意错误内容可以用 as 将具体错误打印出来。

except OSError as reason: print(str(reason))

针对不同的异常可以设置多个except:一个try可以和多个except搭配

...
except OSError as reason:
print(str(reason))
except TypeError as reason:
print(str(reason))

#或者是except后面跟着多个异常,然后统一处理:
except(OSError, TpyeError):

#或者是捕获所有异常:
except:
print('错了')

但是不建议使用捕获所有异常,毕竟可能会隐藏掉为准备的错误。
另外try语句的检测范围一旦出现异常,剩下的所有语句都不会在执行。
异常处理并不仅仅处理那些直接发生在 try 子句中的异常,而且还能处理子句中调用的函数(甚至间接调用的函数)里抛出的异常。

def this_fails():
x = 1/0

>>> try:
this_fails()
except ZeroDivisionError as reason:
print(str(reason) )
  1. try-finally
    如果try语句块中没有出现运行时的错误,会跳过except语句执行finally语句。如果出现异常,先执行except在执行finally。总之,finally语句块中的内容是一定要执行的。

  2. raise语句:就是认为抛出一个异常。

  3. else语句
    与if搭配,要么怎么样,要不不怎么样
    与for ,while 循环语句搭配,else语句块只在循环完成后执行。如果break跳出循环,那么else里面的内容就不会执行了。干完了能怎样,干不完就别想怎样。
    与异常搭配,没有问题,那就干嘛。只要try没有异常,就执行else里面的内容

5. with语句
with语句抽象出文件操作中频繁使用的try/finally/except相关细节。对文件使用with语句,将大大减少代码量,而且它可以自动帮助关闭文件。

try:
with open('a.txt') as f:
for each in f:
print(each)
except:
print('错了')
  • 点赞
  • 收藏
  • 分享
  • 文章举报
AI路漫漫 发布了25 篇原创文章 · 获赞 0 · 访问量 344 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: