[#3109] Is divmod dangerous? — Dave Thomas <Dave@...>

14 messages 2000/06/06

[#3149] Retrieving the hostname and port in net/http — Roland Jesse <jesse@...>

Hi,

12 messages 2000/06/07

[#3222] Ruby coding standard? — Robert Feldt <feldt@...>

16 messages 2000/06/09

[#3277] Re: BUG or something? — Aleksi Niemel<aleksi.niemela@...>

> |I am new to Ruby and this brings up a question I have had

17 messages 2000/06/12
[#3281] Re: BUG or something? — Dave Thomas <Dave@...> 2000/06/12

Aleksi Niemel<aleksi.niemela@cinnober.com> writes:

[#3296] RE: about documentation — Aleksi Niemel<aleksi.niemela@...>

> I want to contribute to the ruby project in my spare time.

15 messages 2000/06/12

[#3407] Waffling between Python and Ruby — "Warren Postma" <embed@...>

I was looking at the Ruby editor/IDE for windows and was disappointed with

19 messages 2000/06/14

[#3410] Exercice: Translate into Ruby :-) — Jilani Khaldi <jilanik@...>

Hi All,

17 messages 2000/06/14

[#3415] Re: Waffling between Python and Ruby — Andrew Hunt <andy@...>

>Static typing..., hmm,...

11 messages 2000/06/14

[#3453] Re: Static Typing( Was: Waffling between Python and Ruby) — Andrew Hunt <andy@...>

32 messages 2000/06/16

[#3516] Deep copy? — Hugh Sasse Staff Elec Eng <hgs@...>

Given that I cannot overload =, how should I go about ensuring a deep

20 messages 2000/06/19

[#3694] Why it's quiet — hal9000@...

We are all busy learning the new language

26 messages 2000/06/29
[#3703] Re: Why it's quiet — "NAKAMURA, Hiroshi" <nahi@...> 2000/06/30

Hi,

[#3705] Re: Why it's quiet — matz@... (Yukihiro Matsumoto) 2000/06/30

Hi,

[ruby-talk:03077] Re: FailureClass?

From: Quinn Dunkan <quinn@...>
Date: 2000-06-01 17:29:01 UTC
List: ruby-talk #3077
> Quinn Dunkan <quinn@envy.ugcs.caltech.edu> writes:
> 
> > Well, since failure is a fundamental concept common to almost all
> > methods,
> >... 
> > an exception
> 
> I got the impression that this failure return was supposed to be
> pretty universal.
> 
> Would you be thinking that a string match would throw an exception on
> failure?

Sorry, that was just my facetious off-the-cuff reaction :)  Obviously,
exceptions are more awkward to deal with than just checking for nil.  What I
meant was that all the nifty functionality FailureClass brings is already
implemented in exceptions (don't even have to write kind_of?).  So I'd say: if
you need to indicate a complex kind of failure (that FailureClass would be
useful for---one that can carry extra info like errno, friendly msg for user,
debugging info, etc.) then throw an exception.  When you want all that fancy
stuff, it's hard to avoid the extra verbiage anyway.  But when you want to
indicate simple failure for a "do one thing" method that is meant to be used
in expressions, use nil (so long as nil is obviously not in the set of valid
returns (which is why I'd expect an invalid hash lookup to throw an exception
rather than return nil, since a hash should be able to store 'nil's, but maybe
I'm too used to python)).

Obviously it's not a clear distinction, and you can see where python struggles
with such things when it provides two functions like string.index and
string.find that do the same thing except one raises and exception and the
other returns -1 on failure.  There's duplicated functionality here, but we're
unlikely to get rid of that unless we design a new language where control
structures like if and while are designed to handle exceptions:

while line = f.readline
    if line =~ /^h/ then
        p 'yay'
    except MatchError then
        p 'bad string'
    except RECompileError then
        p '/^h/ is not a valid re?'
    end
except EOFError
    f.close
end

I need to go write something interesting in icon :)



While I'm on the subject of hashes, could anyone tell me why:

% cat >hash.rb
d = {'a' => 1, 'b' => 2}
p d
d[10] = nil
p d
% ruby hash.rb
{"a"=>1, "b"=>2}
{"a"=>1}
%

What happened to d['b'] ?

In This Thread