I just used a goto!
-
I think the only time that exception handling should be used is when the current code section does not have any control over the code that is throwing the exception - i.e., it is preferable to check and control something than to rely on an exception that simply does a goto the catch branch.
I can agree with that. I had the misfortune of having to deal with an automation systems framework that was essentially a state machine library and it changed states by throwing an exception. I thought it was incredibly stupid. This framework was spreading throughout one division of a customer until someone finally pulled their head out and asked what is this pile you have subjected us to? This particular customer joined my very short list of the worst ones I have ever dealt with and I refuse to buy any of their products to this day.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
-
I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
In high level languages... Ok, maybe you have more possibilities and you should avoid using goto's But try to programm in Assembly, in PLC LAD or other similar "low" level languages without it. It is like many other things. Use it wisely and there would be no problems. Abuse or misuse it... and you will burn in hell (or you will be damned and sent to hell by the people who inherit your code)
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.
-
To avoid this you can put the entire code block in a try. Put the catch at the go to label and throw an exception where you call the goto. Because that’s different somehow!
Socialism is the Axe Body Spray of political ideologies: It never does what it claims to do, but people too young to know better keep buying it anyway. (Glenn Reynolds)
And what happens when the language you are programing in offers no try-catch-throw?
M.D.V. ;) If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about? Help me to understand what I'm saying, and I'll explain it better to you Rating helpful answers is nice, but saying thanks can be even nicer.
-
I think the only time that exception handling should be used is when the current code section does not have any control over the code that is throwing the exception - i.e., it is preferable to check and control something than to rely on an exception that simply does a goto the catch branch.
agreed. I'm thinking of calls to another library where it throws a specific exception after being configured properly. In that case all inputs are set to valid values but then something happens which causes the exception - network not available or something.
-
I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
while ( true ) { ... break ... }
-
while ( true ) { ... break ... }
also
for (;;) { break; }
do { break; } while(0);
that's just pretending. everyone knows that break is a goto. own it!
-
I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
Everytime, I thought I needed a goto, I found I could just put a return inthe middle of a loop. That's a more better way to make things sucky.
CQ de W5ALT
Walt Fair, Jr., P. E. Comport Computing Specializing in Technical Engineering Software
-
I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
Gotos are fine. Like, "I will be back in 30 minutes. I have to GOTO the store." I have to GOTO the baseball game. :thumbsup: :laugh:
-
I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
1. Create a workflow manager using generics, interfaces, class abstraction, enums for state and continuation. 2. Break up your code into small workflow steps. 3. On each step, check for termination. 4. Or to get really fancy, return a code that says what step in the workflow to skip to. 5. If you really want to be cool, allow for async workflow steps! ;)
Latest Article - A 4-Stack rPI Cluster with WiFi-Ethernet Bridging Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
-
Gotos are fine. Like, "I will be back in 30 minutes. I have to GOTO the store." I have to GOTO the baseball game. :thumbsup: :laugh:
Slacker007 wrote:
I have to GOTO the store
Except that's really a function call - you do intend to RETURN from the grocery store, don't you?
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
-
I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
:omg: :wtf: Nuke the location in which the GOTO was used, sow the glass crater with salt, and plow it in. Then scatter biological and chemical agents all around the area, making it inaccessible for 10,000 years!
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
-
I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
It4 seems to me that in a language with no local functions or lacking in structured error handling, gotos have a useful place. A limited place, but a place all the same.
-
To avoid this you can put the entire code block in a try. Put the catch at the go to label and throw an exception where you call the goto. Because that’s different somehow!
Socialism is the Axe Body Spray of political ideologies: It never does what it claims to do, but people too young to know better keep buying it anyway. (Glenn Reynolds)
DRHuff wrote:
Because that’s different somehow!
Yes! Stack unwinding is SO MUCH MORE EFFICIENT than a 'jmp'! :laugh: :rolleyes: :rolleyes: :rolleyes: :laugh:
-
I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
I use goto all the time. Every loop and conditional expression you use calls it to their hearts' content; there's no avoiding it.
I wanna be a eunuchs developer! Pass me a bread knife!
-
I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
I started coding in SuperBase, GOTO and GOSUB were standard and recommended constructs. Transitioning to VB in the 90's was no benefit. It was only when I started using c# that I abandoned them completely. Some of us have shameful pasts.
Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP
-
I know "it's bad" and I will be shun by all good developers and rich employers for a thousands years... But I look at it.. I can't find of anything better.. mm, maybe a private inner function (i.e. function inside a method).... followed by misplaced return.... mm....
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
These days the "goto" is back, I find this very unfortunate. Every time someone writes a RETURN or a BREAK statement, he/she is actually writing a GOTO And the worse thing about it is that this is encouraged these days...
-
These days the "goto" is back, I find this very unfortunate. Every time someone writes a RETURN or a BREAK statement, he/she is actually writing a GOTO And the worse thing about it is that this is encouraged these days...
he's back, and he's angry! ;P however I do believe that while do jump the code pointer, they are their own assembly instruction! ;P
A new .NET Serializer All in one Menu-Ribbon Bar Taking over the world since 1371!
-
goto is NOT the enemy, it's only when it's used wrongly. but also ... contrary to popular belief disguising it fixes nothing ... if you really need to GOTO, just do it - hiding it only increases the bullshit level. unfortunatelly, there are teachers that tell the kids "GOTO is bad," but then "to do the same thing..." they then go on and teach the kids how to disguise them, i.e. instead use THROW, or stick the [inner] code in a method and return early (i.e. still in an indefinite state). ffs, really! I've got no problems with goto, but I do have issues with (1) shit code, and even more (2) attempts to hide shit code
Message Signature (Click to edit ->)
Well said! Not using GOTO has become a matter of faith rather than good programming practice. I've seen some totally impenetrable code that has a indeterminate state, all because of the convoluted efforts the devs went through to avoid a GOTO. (Including rafts of local variables called things like a, aa, aaa, aaaa, x, xx, xxx, xxxx etc!) GOTO is just another tool - it can be used appropriately or badly, just like any other...
-
I'm sure it was the week after your cat died but I'll have the Casio just in case!
Whenever you find yourself on the side of the majority, it is time to pause and reflect. - Mark Twain
Phew, just in time.
-
Slacker007 wrote:
I have to GOTO the store
Except that's really a function call - you do intend to RETURN from the grocery store, don't you?
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
Ah, a GOSUB