[#400858] Support for multiple Inheritance by classes — Ross Konsolebox <lists@...>

Will Ruby ever support multiple inheritance through classes instead of

23 messages 2012/11/03
[#400859] Re: Support for multiple Inheritance by classes — Arlen Cuss <ar@...> 2012/11/03

I think I can say "no" with a fair amount of confidence.

[#400902] Re: Support for multiple Inheritance by classes — Ross Konsolebox <lists@...> 2012/11/04

Arlen Cuss wrote in post #1082618:

[#400904] Re: Support for multiple Inheritance by classes — Peter Hickman <peterhickman386@...> 2012/11/04

Even though other languages handle multiple inheritance without any

[#400865] why does UnboundMethod need to remember the class it was retrieved from (not merely owner)? — "Mean L." <lists@...>

class Base; def foo; end end

17 messages 2012/11/03

[#400914] login web page using mechanize — john smith <lists@...>

new to ruby, love the language. read programmatic programmers guide to

25 messages 2012/11/04

[#400985] How to merge two or more hashes in to one? — "Jermaine O." <lists@...>

Hi everyone.

14 messages 2012/11/06

[#401026] Site down watir-webdriver — ajay paswan <lists@...>

Whenever a site is down it keeps on looking for it for sometime and

14 messages 2012/11/07

[#401027] Closing popups watir-webdriver — ajay paswan <lists@...>

Sometimes popup comes when a link is clicked, sometimes popup comes when

14 messages 2012/11/07

[#401125] Complete newbie — "Carlos A." <lists@...>

Hey guys!

14 messages 2012/11/10

[#401161] Convert date to string — Ferdous ara <lists@...>

Hi

12 messages 2012/11/11

[#401173] question on watir — Raj pal <lists@...>

I am automating Idit application using Ruby, at one screen I can't feed

233 messages 2012/11/12

[#401191] Extending Array instances — Charles Hixson <charleshixsn@...>

I'm trying to figure out a good way to extend an Array, when the items

17 messages 2012/11/12
[#401195] Re: Extending Array instances — Brian Candler <lists@...> 2012/11/12

Charles Hixson wrote in post #1084111:

[#401200] Efficient way for comparing records between 2 large files (16 million records) — Ruby Student <ruby.student@...>

Team,

9 messages 2012/11/12

[#401274] following along with "Beginning Ruby." — Al Baker <lists@...>

I'm having trouble following along with some of the examples in this

15 messages 2012/11/15

[#401279] Question on exceptions — Justin Gamble <lists@...>

Hello! I have a simple bank program where I have to have an exception

16 messages 2012/11/15
[#401281] Re: Question on exceptions — Justin Gamble <lists@...> 2012/11/15

What is the reason of doing the .new(...)in

[#401295] Re: Question on exceptions — Brian Candler <lists@...> 2012/11/16

Justin Gamble wrote in post #1084635:

[#401296] Re: Question on exceptions — tamouse mailing lists <tamouse.lists@...> 2012/11/16

On Fri, Nov 16, 2012 at 1:43 AM, Brian Candler <lists@ruby-forum.com> wrote:

[#401301] Alternatives to methods for large number of nested "ifs" — Philip Rhoades <phil@...>

People,

11 messages 2012/11/16

[#401336] Advice for simple client/server application — Panagiotis Atmatzidis <atma@...>

Hello,

12 messages 2012/11/17

[#401364] Metaprogramming — "Aurimas N." <lists@...>

Hello,

12 messages 2012/11/19

[#401404] "undefined method `synchronize' for #<Mutex:0xa0f5adc>" from embedded Ruby program — Graham Menhennitt <graham@...>

I'm writing a C++ program (on Centos 5 Linux) that embeds a Ruby 1.9.3

9 messages 2012/11/21

[#401422] how to increase variable inside the while loop — Ferdous ara <lists@...>

Hi, my question might be confusing as its hard for me to make it clear,

12 messages 2012/11/21

[#401451] Arrays with records as objects — Steve Tucknott <lists@...>

I am completely new to Ruby.

11 messages 2012/11/22

[#401458] working with mysql in ruby — john smith <lists@...>

i have been trying to successfully connect ruby with mysql. there are a

17 messages 2012/11/22

[#401567] click on link not working with ie #watir-webdriver — ajay paswan <lists@...>

Greetings,

12 messages 2012/11/26

[#401578] atomic statements in multithreading — ajay paswan <lists@...>

suppose I am working in multiple thread each thread runs following

10 messages 2012/11/26

[#401607] Novice: Understanding instance 'variables' and methods — Steve Tucknott <lists@...>

A question - or comment - on instance variables.

10 messages 2012/11/26

[#401644] Getting the smallest Items of an Array — "Ismail M." <lists@...>

Hello guys,

14 messages 2012/11/27

[#401655] gem problems(sigh) — Al Baker <lists@...>

i tried to make a gem and tried to build the spec file and this is what

10 messages 2012/11/28

[#401688] sorting data from a file — "Ismail M." <lists@...>

Hey guys,

16 messages 2012/11/28

[#401706] Newbie question: (free) on-line courses? — Ken D'Ambrosio <ken@...>

Hello, all. There's a bunch of free on-line training for Javascript,

11 messages 2012/11/28

Re: Question on exceptions

From: Robert Klemme <shortcutter@...>
Date: 2012-11-17 14:19:14 UTC
List: ruby-talk #401329
On Sat, Nov 17, 2012 at 4:47 AM, tamouse mailing lists
<tamouse.lists@gmail.com> wrote:
> On Fri, Nov 16, 2012 at 6:27 AM, Robert Klemme
> <shortcutter@googlemail.com> wrote:
>> On Fri, Nov 16, 2012 at 9:27 AM, tamouse mailing lists
>> <tamouse.lists@gmail.com> wrote:
>>
>>> Is this a good way to use exceptions? Having an insufficent balance
>>> might be something the user finds exceptional, but I'd think it would
>>> be a standard sort of handling for a bank applicaion...
>>
>> Depends on how you implement it:
>
> I know the right answer to every question is "It depends" :)

Ah, I see you learned the most important lesson! ;-)

>> if you have the option to query the
>> current balance and define that a withraw operation is only allowed
>> with sufficient funds then you throw an exception.  If OTOH you define
>> that withdraw will return success then you have a boolean return
>> value.  Both approaches are legal and feasible.
>
> I guess I'm looking for some kind of guidance to generalize this.
>
> My understanding is that one only uses exceptions for things which the
> app finds exceptional,

... which is a kind of tautological statement. :-)

> meaning things which it cannot or should not be
> dealing with, which in some cases may depend on the business practices
> and policies one is implementing.

Yes.  And this also depends on context and design philosophy.  For
example, in Java you will get an exception when accessing an array or
an ArrayList with an illegal index.  In Ruby you just get nil from
Array if the index was out of range.  This makes perfectly sense given
that the normal iteration method in Ruby is via #each which ensures
you only get to see elements in the Array and in Java you have to
externally iterate with an index or Iterator instance.

OTOH you will get an exception in Ruby if the type is not an integral
type or the numeric value is too large.

> Do you (or anyone else who'd like to chime in!) have a ... set of
> heuristics, maybe? .. that help you know when it's appropriate and
> when it's not?

I can see these categories of errors where an exception seems appropriate to me:

1. programmer errors
   - invoking methods which are not there
   - invalid arguments passed to methods (type errors, range errors)
   - invalid arguments passed which would invalidate the class invariant
   - calling methods at the wrong time i.e. when the instance is not
in the proper state for the method call (e.g. you must invoke #open on
something before you can invoke #write, you need to obtain some form
of lock before you are allowed to work with an instance)

2. exceptional conditions outside the program
   - technical IO errors (disk and network)
   - memory exhausted

There are probably more but this is what comes to mind off the top of my head.

> The reason I ask is not merely academic. I see in code many places
> where it is raising and exception, and then the rescue code does
> something like this:
>
> rescue Exception
>
>    # blah blah
>
> end
>
> In other words, they know an exception might be raised, but they trap
> evey possible exception, rather than a specific one. I'm worried (?)
> (thinking) that use of raising exceptions might be a little too easily
> decided upon as the answer, and if I should maybe push back on such
> implementations...

That's really hard to tell without more context. :-)

> Thanks, so much, Robert. :)  And I am going to check out your web site
> right now.

You're welcome!

Kind regards

robert

--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/

In This Thread