[#6954] Why isn't Perl highly orthogonal? — Terrence Brannon <brannon@...>

27 messages 2000/12/09

[#7022] Re: Ruby in the US — Kevin Smith <kevinbsmith@...>

> Is it possible for the US to develop corporate

36 messages 2000/12/11
[#7633] Re: Ruby in the US — Dave Thomas <Dave@...> 2000/12/19

tonys@myspleenklug.on.ca (tony summerfelt) writes:

[#7636] Re: Ruby in the US — "Joseph McDonald" <joe@...> 2000/12/19

[#7704] Re: Ruby in the US — Jilani Khaldi <jilanik@...> 2000/12/19

> > first candidates would be mysql and postgressql because source is

[#7705] Code sample for improvement — Stephen White <steve@...> 2000/12/19

During an idle chat with someone on IRC, they presented some fairly

[#7750] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

Stephen White wrote:

[#7751] Re: Code sample for improvement — David Alan Black <dblack@...> 2000/12/20

Hello --

[#7755] Re: Code sample for improvement — "Guy N. Hurst" <gnhurst@...> 2000/12/20

David Alan Black wrote:

[#7758] Re: Code sample for improvement — Stephen White <steve@...> 2000/12/20

On Wed, 20 Dec 2000, Guy N. Hurst wrote:

[#7759] Next amusing problem: talking integers (was Re: Code sample for improvement) — David Alan Black <dblack@...> 2000/12/20

On Wed, 20 Dec 2000, Stephen White wrote:

[#7212] New User Survey: we need your opinions — Dave Thomas <Dave@...>

16 messages 2000/12/14

[#7330] A Java Developer's Wish List for Ruby — "Richard A.Schulman" <RichardASchulman@...>

I see Ruby as having a very bright future as a language to

22 messages 2000/12/15

[#7354] Ruby performance question — Eric Crampton <EricCrampton@...>

I'm parsing simple text lines which look like this:

21 messages 2000/12/15
[#7361] Re: Ruby performance question — Dave Thomas <Dave@...> 2000/12/15

Eric Crampton <EricCrampton@worldnet.att.net> writes:

[#7367] Re: Ruby performance question — David Alan Black <dblack@...> 2000/12/16

On Sat, 16 Dec 2000, Dave Thomas wrote:

[#7371] Re: Ruby performance question — "Joseph McDonald" <joe@...> 2000/12/16

[#7366] GUIs for Rubies — "Conrad Schneiker" <schneik@...>

Thought I'd switch the subject line to the subject at hand.

22 messages 2000/12/16

[#7416] Re: Ruby IDE (again) — Kevin Smith <kevins14@...>

>> >> I would contribute to this project, if it

17 messages 2000/12/16
[#7422] Re: Ruby IDE (again) — Holden Glova <dsafari@...> 2000/12/16

-----BEGIN PGP SIGNED MESSAGE-----

[#7582] New to Ruby — takaoueda@...

I have just started learning Ruby with the book of Thomas and Hunt. The

24 messages 2000/12/18

[#7604] Any corrections for Programming Ruby — Dave Thomas <Dave@...>

12 messages 2000/12/18

[#7737] strange border-case Numeric errors — "Brian F. Feldman" <green@...>

I haven't had a good enough chance to familiarize myself with the code in

19 messages 2000/12/20

[#7801] Is Ruby part of any standard GNU Linux distributions? — "Pete McBreen, McBreen.Consulting" <mcbreenp@...>

Anybody know what it would take to get Ruby into the standard GNU Linux

15 messages 2000/12/20

[#7938] Re: defined? problem? — Kevin Smith <sent@...>

matz@zetabits.com (Yukihiro Matsumoto) wrote:

26 messages 2000/12/22
[#7943] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

Kevin Smith <sent@qualitycode.com> writes:

[#7950] Re: defined? problem? — Stephen White <steve@...> 2000/12/22

On Fri, 22 Dec 2000, Dave Thomas wrote:

[#7951] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

On Fri, 22 Dec 2000, Stephen White wrote:

[#7954] Re: defined? problem? — Dave Thomas <Dave@...> 2000/12/22

David Alan Black <dblack@candle.superlink.net> writes:

[#7975] Re: defined? problem? — David Alan Black <dblack@...> 2000/12/22

Hello --

[#7971] Hash access method — Ted Meng <ted_meng@...>

Hi,

20 messages 2000/12/22

[#8030] Re: Basic hash question — ts <decoux@...>

>>>>> "B" == Ben Tilly <ben_tilly@hotmail.com> writes:

15 messages 2000/12/24
[#8033] Re: Basic hash question — "David A. Black" <dblack@...> 2000/12/24

On Sun, 24 Dec 2000, ts wrote:

[#8178] Inexplicable core dump — "Nathaniel Talbott" <ntalbott@...>

I have some code that looks like this:

12 messages 2000/12/28

[#8196] My first impression of Ruby. Lack of overloading? (long) — jmichel@... (Jean Michel)

Hello,

23 messages 2000/12/28

[#8198] Re: Ruby cron scheduler for NT available — "Conrad Schneiker" <schneik@...>

John Small wrote:

14 messages 2000/12/28

[#8287] Re: speedup of anagram finder — "SHULTZ,BARRY (HP-Israel,ex1)" <barry_shultz@...>

> -----Original Message-----

12 messages 2000/12/29

[ruby-talk:7746] [Q] Are Exceptions used that much in practice?

From: "Conrad Schneiker" <schneik@...>
Date: 2000-12-20 06:39:42 UTC
List: ruby-talk #7746
FYI. This is from comp.lang.python. Thought some people here might find it 
interesting, since similar issues arise in Ruby.

Alex Martelli wrote:
> 
> "Jerome Mrozak" <goose@enteract.com> wrote in message
> news:3A35D546.A4731B5B@enteract.com...
> > I realize that Python allows me to catch exceptions.  But being a 
novice
> > I'm not sure if they are used much in the 'real world'.
> 
> Oh yes they are -- an absolutely crucial and fundamental technique.
> 
> > In Java, my current bread-winning language, exceptions are caught 
mostly
> > because the compiler/language demands it.  I haven't yet designed a
> 
> To be specific: in Java, if a certain method's body can raise
> certain exceptions it does not catch, you have to _declare_ this
> as a part of the method's signature.  A very good design choice
> within a language hinging on compile-time static typechecking,
> and vastly superior to C++'s semantics for exception declarations
> (which were hampered by the need for backwards compatibility).
> 
> > Another way of putting it is, if the try-catch-else didn't exist would
> > anyone be terribly put out?  (If not then the construct isn't much
> > used...)
> 
> Python programming would be utterly different (and much less fun)
> if one could not use try/except.  (try/finally could more easily
> be replaced by a slightly different semantics on guaranteed
> finalization of objects, and it's a pity a 'try' can't have one
> or more 'except' clauses _followed_ by a 'finally' one, etc, etc,
> but these are secondary issues).
> 
> Specifically: in Python, exceptions are NOT for 'exceptional'
> conditions ONLY (as good programming style demands they be in
> C++, and, ideally, in Java just as well).  exceptions are the
> NORMAL Python way to report on "I can't do this, Jim".
> 
> You want to exit from a deeply-nested loop, or recursion?  Use
> exceptions.  You want to terminate a tree-walk over directories?
> Use exceptions.
> 
> Perhaps the single most important issue is the design pattern
> named (after a famous quote from Commodore Hopper, Cobol's
> inventor) "It's easier to ask forgiveness than permission".
> 
> A typical setting for it: somebody asks, "How do I check that
> a file exists?".  What they most often MEAN by this: 'how do
> I check that a file exists AND is authorized to be read by
> the user currently running the program AND THEN actually go
> and open the file for reading?" -- and the best answer to this
> question is NOT, e.g.:
> 
> def open_if_ok1(filepath):
>     if os.access(filepath, os.R_OK):
>         return open(filepath, 'r')
>     else:
>         return None
> 
> Why not?  Well, for example, the world is multi-tasked: there
> is a small but non-null window of time between the instant
> in which os.access gives you the go-ahead, and the following
> instant in which you actually go and 'use' that permission!
> The file *might* go away or get locked against reading in
> that small window -- the kind of problem, connected with 'race
> conditions', that's EXCEEDINGLY hard to pinpoint, reproduce,
> and debug, when it comes up...
> 
> There is a simpler, safer, sounder way...:
> 
> def open_if_ok2(filepath):
>     try: return open(filepath, 'r')
>     except IOError: return None
> 
> "Just do it" -- making sure expected possible errors are
> caught and handled in according with the semantic specs
> (here, we assume, None is to be returned if the filepath
> can't be opened for reading, for whatever reason).
> 
> Or, take another example.  "Am I allowed to set attribute
> foo of object bar to the Unicode string u'fee fie foo fum'"?
> 
> How do you check for *that*, when the object can have any
> type, and, if it's an instance-object, its __setattr__ might
> do whatever kinds of semantic checks on the attribute being
> set and/or the value it's being set to...?
> 
> 'Asking for permission' is basically unfeasible here.  Much
> better to 'ask for forgiveness' if needed, e.g.:
> 
> def setattr_ok(obj, attr, value):
>     try: setattr(obj, attr, value)
>     except (AttributeError, ValueError): return 0
>     else: return 1
> 
> (Some might prefer a wider 'except: return 0' clause, but
> most often it's better to be specific in catching exceptions).
> 
> Alex

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

In This Thread

Prev Next