[#1816] Ruby 1.5.3 under Tru64 (Alpha)? — Clemens Hintze <clemens.hintze@...>

Hi all,

17 messages 2000/03/14

[#1989] English Ruby/Gtk Tutorial? — schneik@...

18 messages 2000/03/17

[#2241] setter() for local variables — ts <decoux@...>

18 messages 2000/03/29

[ruby-talk:02255] Re: Misleading IO error message

From: schneik@...
Date: 2000-03-30 01:28:49 UTC
List: ruby-talk #2255

Hi,

Hal Fulton wrote:
> May I suggest a possible better solution for this
> unusual circumstance?
>
> When a literal string is output -- one not expected
> to have control characters -- convert those to some
> slash form:
>
>    ./oops.rb:9005:in `open': No such file or directory - '/w/x/y/z\n'
>    (Errno::ENOENT)
>
> Then you can single-quote the string and the exception id
> will still correctly appear on the next line.
>
> Hal
>
> > Hi,
> >
> > In message "[ruby-talk:02229] Re: Misleading IO error message"
> >     on 00/03/28, schneik@us.ibm.com <schneik@us.ibm.com> writes:
> >
> > |I got an error message of the following form:
> > |
> > |    ./oops.rb:9005:in `open': No such file or directory - /w/x/y/z
> > (Errno::ENOENT)
> > |
> > |
> > |But there was such a directory!
> >
> > Ok, wrap the filename by `'.  But current implementaion puts exception
> > names right after the first newline, then it would be:
> >
> >   ./oops.rb:9005:in `open': No such file or directory - '/w/x/y/z
> > (Errno::ENOENT)
> >   '
> >
> > It's still misleading in some degree.  Maybe little bit better though.
> >
> >                                matz.

I sent two follow-up notes to my original note on this topic, both
mentioning that the output shown in the first note was an unfortunate
artifact of post-send line wrapping, but those notes seem to have been
overlooked or misunderstood.

Let me see if I can explain better this time: the original error message
was not wrapped at all--it came out all on just _one_ line,
_including_ the exception id.

I just recreated the problem just to make sure.

If '\'s are used, you might want to use "-quotes, to more closely follow
Ruby's literal conventions.

However, this could still be quite messy if NT paths are displayed in
native form in error messages, because you have to \-quote \-chars to
handle "\<whatever>" (2 chars) and "\<whatever>" (1 control char)
correctly. (Actually you would have to do this anyway.) The nice thing
about quoting the path in any case is the widespread use of spaces in path
names in the Windows and Mac world. (I think this will become increasingly
common on UNIX as increasingly more useful Linix file browsers develop and
proliferate.)

> Subject: [ruby-talk:02229] Re: Misleading IO error message
> Subject: [ruby-talk:02235] Re: Misleading IO error message
<...>
> Conrad Schneiker wrote:
> > ((I'm resending this because the previous message was automatically
> > wrapped somewhere along the line at precisely the wrong point
> > to show my initial problem.))
> >
> > I got an error message of the following form:
> >
> >     ./oops.rb:9005:in `open': No such file or
> >     directory - /w/x/y/z (Errno::ENOENT)
<...>

Conrad Schneiker
(This note is unofficial and subject to improvement without notice.)


In This Thread

Prev Next