擅长:python、mysql、java
<p>我在尝试在库中实现'with'功能时遇到的一个问题是找到一种处理失败异常的优雅方法。考虑到以下因素:</p>
<pre><code>class open_file_for_read(object):
def __init__(self):
self.filename = "./does_not_exist.txt"
self.fileobj = None
def __enter__(self):
print("Opening file %s for read" % self.filename)
self.fileobj = open(name=self.filename, mode='r')
return self.fileobj
def __exit__(self, type, value, traceback):
self.fileobj.close()
with open_file_for_read() as fh:
for li in fh.readlines():
print(li)
</code></pre>
<p>如何处理不可避免的“IOError:[Errno 2]没有这样的文件或目录:'。/不_存在.txt'例外?总是有“尝试/排除”的方法</p>
^{pr2}$
<p>这种直接的方法是可行的,但我认为它有损于使用'with'结构的简单性。也许有人有更优雅的解决方案?在</p>
<p>这个问题的解决方法更多的是一个问题而不是一个答案,但这是我在尝试实现“with”时遇到的问题之一。在</p>