python异常处理机制的好处_Python笔记(四):异常处理机制与 open()

转自https://www.cnblogs.com/simple-free/p/8386072.html

(一) 异常处理机制概述

就像日常生活中会遇到各种意外情况一样(例如:你可能考虑过如果中了500w该怎么做),代码运行过程中也会遇到这种意外情况,python提供了这么一种机制,处理意外情况(就像如果中了5百万你希望代码怎么做一样)。

注:不处理这种意外情况,代码就会崩溃,后面全部代码都将停止运行。

实际应用中,主要分为3步:

(1) 圈出你认为可能出异常的代码。

(2) 设置你认为可以忽略的异常类型。

(3) 异常出现时,你希望的处理方式。

异常类型和格式可查看:http://www.runoob.com/python/python-exceptions.html

(二) open

open() 函数用于打开一个文件,创建一个 file 对象

the_file = open(‘测试.txt’)

参数及方法可参考:http://www.runoob.com/python/python-func-open.html

模式

描述

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

(三) 例子

(1) 新建一个文件 测试.txt,输入以下内容

张三:今天天气真好.

李四:是的,真的太好了。

张三:阳光明媚。

李四:鸟语花香。

王五:装逼现场:请带好安全帽

张三:难得好天气,今天就不偷懒了。

李四:能把乞讨说的这么高大上的也就只有你了。

分隔符

张三:难得好天气,今天就不偷懒了。

李四:能把乞讨说的这么高大上的也就只有你了。

(2) 使用open读取上面的文件,结合异常处理机制进行说明

try:

the_file = open(r'C:\Users\努力学习,不要让自己失望\Desktop\测试.txt')//这个open(r'你创建文档的地方!!')

foreach_line inthe_file:

try:

(role,line_spoken) = each_line.split(":",1)

#以:分割数据,参数1表示只分解为2部分。

#例如:分割第一行数据,就是 role = ‘张三’ line_spoken = 今天天气真好.

# 不设置这个参数就是尽可能分割,那么读取 王五:装逼现场:请带好安全帽 数据时会出错

#分割“分隔符”这行数据时会出现ValueError异常(因为没有 :),不忽略这个错误后面全部数据都会不能读取print(role,end="")

print(" said"+": ",end="")

print(line_spoken,end="")

exceptValueError:

#出现ValueError时,直接输出 each_line的值print(each_line,end="")

the_file.close()

exceptIOError:

#找不到文件时提示文件不存在print("文件不存在!")

1499319-20181003092600952-1631698689.png

(四) 事先处理可能出现的错误 和 错误出现后再处理2种方式

(1) 实际上我们也可以事先处理可能出现的错误,通过下面的代码实现。

if noteach_line.find(':') == -1:

# find()找不到目标字符串时会返回 -1 ,not 取反else:

print(each_line,end="")

(2) 但是存在的问题是,你可能需要写大量的逻辑代码去处理这种情况,这样功能代码可能只占极小的一部分,导致代码要实现的功能不清晰。通过异常处理机制就不存在这个问题,代码要实现的功能一目了然。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值