See below:

 

From: [email protected] 
[mailto:[email protected]] On Behalf Of Jim Williams
Sent: Monday, April 21, 2014 11:57 AM
To: [email protected]
Subject: Re: [Opensim-dev] Error detection when storing an asset

 

No!  The lower level code should return what happened, and there is nothing 
which is "exceptional" except some children; which is the right way to view the 
notion of exceptions -- dim-witted.  Given that the stupid idea was invented, I 
must admit that sometimes there is no real choice but to accept the crappy code 
and propagate the crap -- but there is no reason to do so willingly.  The 
try/catch scheme is bad practice.  How to deal with the crap that is out there 
is a matter which can be discussed, but not with the notion that is was done 
right to begin with.

 

Then design the api to return success/failure as a return result.  Point is, 
you don’t choose to gleefully ignore error details from a lower level.  I get 
that you don’t like exceptions.  And that there is long standing religious 
debates on how they should be used.  My point wasn’t so much about the 
mechanism as the approach.  Lower level code returns success/failure and upper 
level code decides what to do.

 

It goes along with thinking that objects are somehow special.  Took me years to 
figure out that objects were simply good programming practice with a bit of 
crap tossed in to confuse people.  (BTW-- I worked at Object Design.  I know 
what a C++ object is better than you do.)

 

I wouldn’t necessarily make that assumption.  You don’t know what I’ve done in 
my career.   I was a long time user of Object Design though and am well aware 
of the issues it had with exceptions unwinding the stack.   Just because C++ 
exception handling sucked for many years though doesn’t necessarily mean 
exceptions==bad.

 

Mike

 

P.S. As Hiro pointed out, I’m not a core member just an interested techie with 
an opinion who is trying to share it.  

 

 

On Mon, Apr 21, 2014 at 11:13 AM, Mike Chase <[email protected] 
<mailto:[email protected]> > wrote:

That’s a shame but I understand.  I don’t understand the resistance to what I 
guess I consider good programming practice because there seems to be concern 
about “fixing” code that might be effected.  IMO lower level code should throw 
exceptions if something exceptional happens and let the upper levels decide to 
retry or report the error.

 

Mike

 

From: [email protected] 
<mailto:[email protected]>  
[mailto:[email protected] 
<mailto:[email protected]> ] On Behalf Of Oren Hurvitz
Sent: Monday, April 21, 2014 10:54 AM
To: [email protected] <mailto:[email protected]> 
Subject: Re: [Opensim-dev] Error detection when storing an asset

 

James, the only philosophical concern that I've heard is a desire to hide 
errors and present a false facade of 100% success to users. This was obfuscated 
by an attempt to claim that the errors could someday be fixed automatically, 
but that doesn't actually happen in today's OpenSim so it's not a valid point. 
Since I respect my users and value their time I have to let them know when I've 
failed to complete an action that they requested, so I reject this approach.

A second possible objection is a practical one: will propagating exceptions 
cause other parts of the code, unrelated to the assets service, to fail? I 
don't know the answer to that, but I still refuse to pretend success in cases 
where I've failed.

For these reasons, I have changed Kitely to propagate exceptions thrown in the 
communications system; it is already done. If this causes problems then I will 
see them and fix them. But in view of the surprising and vigorous opposition to 
this change I will not be contributing it to OpenSim.

Oren

 

On Mon, Apr 21, 2014 at 5:43 PM, James Stallings II <[email protected] 
<mailto:[email protected]> > wrote:

Parhaps it would be interesting to hear whether Oren has obtained to some 
elegant way of addressing these concerns.

 

Cheers

 

On Sun, Apr 20, 2014 at 11:08 PM, Trinity <[email protected] 
<mailto:[email protected]> > wrote:

Im in mels camp on this one.

Trinity Bays

 

On Sat, Apr 19, 2014 at 4:14 AM, Melanie <[email protected] 
<mailto:[email protected]> > wrote:

These "other places" are what I'm worried about. There are a lot of them and 
each of them would need to have code added. Exception handling code is one of 
the worst types of code because the "try" is a scope, so locals devlared in the 
try, like bool result = MethodToTry(); will have to be split up into declaring 
the bool outside the scope and assigning it inside - incredibly ugly for code 
that wants to be reference and teaching code as well as a functioning system.

- Melanie


On 19 Apr 2014, at 08:02, Oren Hurvitz <[email protected] 
<mailto:[email protected]> > wrote:

My fix has two parts.

The first is that the Store() operation needs to understand failures correctly. 
There has been a consensus that it should, so I'll add that to Git.

The second is that MakeRequest() should propagate exceptions, instead of just 
returning null (which is what it does now). So far there have been 3 votes for 
this (me, Mike Chase, and Justin) and 2 against (Melanie, Diva). That's very 
close; does anyone else want to make their position known?

Next, I see that there's confusion in this discussion about what happens in 
Store() if MakeRequest() throws an exception. And the answer is, nothing will 
be different, because Store() already correctly catches exceptions. That is 
precisely how it should work: the low-level communications system reports when 
it has failed, and higher levels (that know the business value of the call) 
decide how to handle it. However, MakeRequest() is called from other places as 
well and they might need to be changed to handle exceptions better.

_______________________________________________
Opensim-dev mailing list
[email protected] <mailto:[email protected]> 
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev
_______________________________________________
Opensim-dev mailing list
[email protected] <mailto:[email protected]> 
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev

 


_______________________________________________
Opensim-dev mailing list
[email protected] <mailto:[email protected]> 
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev





 

-- 

===================================

http://osgrid.org/
http://simhost.com
http://twitter.com/jstallings2


_______________________________________________
Opensim-dev mailing list
[email protected] <mailto:[email protected]> 
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev




-- 

Oren Hurvitz
VP R&D
Kitely Ltd.

Email: [email protected] <mailto:[email protected]> 


_______________________________________________
Opensim-dev mailing list
[email protected] <mailto:[email protected]> 
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev





 

-- 
No essence.  No permanence.  No perfection.  Only action. 

_______________________________________________
Opensim-dev mailing list
[email protected]
http://opensimulator.org/cgi-bin/mailman/listinfo/opensim-dev

Reply via email to