On Sat, Feb 21, 2004 at 08:35:19PM +0100, Tilo Schwarz wrote:
> On Saturday 21 February 2004 19:26, Andrew Suffield wrote:
> > On Sat, Feb 21, 2004 at 05:14:17PM +0100, Tilo Schwarz wrote:
> > > > > There is no such thing as an I/O operation without an error check in
> > > > > Python, and in my book, that is an incredibly Good Thing.
> > > >
> > > > There's a perl module that calls die "moo" on every IO error if that's
> > > > what you really want, but nobody uses it because when they think about
> > > > it, that is not what they want. They want a *useful* error
> > > > message. Not an obtuse message suggesting that there might be some
> > > > sort of error.
> > >
> > > I couldn't agree more. That's why I like it more like this:
> > > > python
> > >
> > > Python 2.3.3 (#2, Jan 13 2004, 00:47:05)
> > > [GCC 3.3.3 20040110 (prerelease) (Debian)] on linux2
> > > Type "help", "copyright", "credits" or "license" for more information.
> > >
> > > >>> input = file('thisfiledoesnotexist')
> > >
> > > Traceback (most recent call last):
> > > File "<stdin>", line 1, in ?
> > > IOError: [Errno 2] No such file or directory: 'thisfiledoesnotexist'
> > >
> > > >>> input = file('norights.txt')
> > >
> > > Traceback (most recent call last):
> > > File "<stdin>", line 1, in ?
> > > IOError: [Errno 13] Permission denied: 'norights.txt'
> > >
> > > >>> import os
> > > >>> os.rmdir('tmp')
> > >
> > > Traceback (most recent call last):
> > > File "<stdin>", line 1, in ?
> > > OSError: [Errno 39] Directory not empty: 'tmp'
> >
> > Traceback (most recent call last):
> > [ blah blah blah ]
> > IOError: [Errno 2] No such file or directory '/tmp/fileag3TSg'
> >
> > Uhh, what? What file? Why are you even looking there? What were you
> > trying to do, and why? This error is useless.
>
> At least it does include the cause for the failed open ("[Errno 2] No such
> file or directory").
>
> > Failed to open scratch file '/tmp/fileag3TSg' (something deleted it in
> > mid-run?) at moo line x.
> >
> > Ah, I need to kill tmpreaper. This error is useful.
>
> O.k., now I know that the open failed and I get a hint how to solve the
> problem, assuming the file actually not exists. But no one knows, as the
> original information about the cause of the failed open is silently stripped.
> That the file doesn't exist is just one of many possible reasons for the
> failed open
Well, I would only have thrown that one with "(something deleted it in
mid-run?)" on ENOENT. I'd have stuck $! in the generic message.
--
.''`. ** Debian GNU/Linux ** | Andrew Suffield
: :' : http://www.debian.org/ |
`. `' |
`- -><- |
Attachment:
signature.asc
Description: Digital signature