Click here to Skip to main content
15,911,890 members

The Weird and The Wonderful

   

The Weird and The Wonderful forum is a place to post Coding Horrors, Worst Practices, and the occasional flash of brilliance.

We all come across code that simply boggles the mind. Lazy kludges, embarrassing mistakes, horrid workarounds and developers just not quite getting it. And then somedays we come across - or write - the truly sublime.

Post your Best, your worst, and your most interesting. But please - no programming questions . This forum is purely for amusement and discussions on code snippets. All actual programming questions will be removed.

 
GeneralA big if Pin
ClementsDan1-Nov-08 18:42
ClementsDan1-Nov-08 18:42 
GeneralRe: A big if Pin
PIEBALDconsult2-Nov-08 3:04
mvePIEBALDconsult2-Nov-08 3:04 
AnswerRe: C/C++ or C#? [modified] Pin
Thomas Weller2-Nov-08 20:13
Thomas Weller2-Nov-08 20:13 
GeneralRe: C/C++ or C#? Pin
Nagy Vilmos2-Nov-08 22:28
professionalNagy Vilmos2-Nov-08 22:28 
GeneralRe: C/C++ or C#? Pin
PIEBALDconsult3-Nov-08 4:03
mvePIEBALDconsult3-Nov-08 4:03 
GeneralRe: C/C++ or C#? Pin
Nemanja Trifunovic3-Nov-08 8:24
Nemanja Trifunovic3-Nov-08 8:24 
GeneralRe: C/C++ or C#? Pin
Thomas Weller3-Nov-08 8:48
Thomas Weller3-Nov-08 8:48 
GeneralRe: C/C++ or C#? Pin
Nemanja Trifunovic3-Nov-08 9:11
Nemanja Trifunovic3-Nov-08 9:11 
Thomas Weller wrote:
True, but if there are some actions to be taken that are not part of the functional code (e.g. releasing resources), I'd consider to take a try/finally approach or implementing sort of Dispose pattern - depending on the problem to solve and whether it is C/C++ or C#.


Exceptions coupled with automatic release of resources are the best approach. But if this approach is not available, the nested ifs still work well and are reasonably readable: at least the error paths are somewhat separated from the "normal" flow

Typical well written COM code often looks like:

ISomeInterface* pInter(NULL);
HRESULT hr = E_FAIL;
if (SUCCEEDED(SomeFactory->CreateSomeObject(&pInter)))
{
  if (SUCCEEDED(pInter->Operation1()))
  {
    if (SUCCEEDED(pInter->Operation2()))
    {
      DoSomething(pInter);
      hr = S_OK;
    }
    else
      hr = E_WHATEVER2;
  else 
    hr = E_WHATEVER1;
  }
else
  pInter->Release();
}

return hr;



GeneralRe: C/C++ or C#? Pin
Thomas Weller3-Nov-08 9:35
Thomas Weller3-Nov-08 9:35 
GeneralRe: C/C++ or C#? Pin
Nemanja Trifunovic3-Nov-08 9:58
Nemanja Trifunovic3-Nov-08 9:58 
GeneralRe: C/C++ or C#? Pin
Thomas Weller3-Nov-08 10:08
Thomas Weller3-Nov-08 10:08 
GeneralRe: C/C++ or C#? Pin
Nemanja Trifunovic3-Nov-08 10:28
Nemanja Trifunovic3-Nov-08 10:28 
GeneralRe: C/C++ or C#? Pin
Thomas Weller4-Nov-08 3:19
Thomas Weller4-Nov-08 3:19 
GeneralRe: C/C++ or C#? Pin
Dan Neely3-Nov-08 10:13
Dan Neely3-Nov-08 10:13 
GeneralRe: C/C++ or C#? Pin
Thomas Weller3-Nov-08 10:17
Thomas Weller3-Nov-08 10:17 
GeneralRe: C/C++ or C#? Pin
Nemanja Trifunovic3-Nov-08 10:35
Nemanja Trifunovic3-Nov-08 10:35 
GeneralRe: C/C++ or C#? Pin
Dan Neely4-Nov-08 2:16
Dan Neely4-Nov-08 2:16 
GeneralRe: C/C++ or C#? Pin
Nemanja Trifunovic4-Nov-08 4:29
Nemanja Trifunovic4-Nov-08 4:29 
GeneralRe: C/C++ or C#? Pin
supercat95-Nov-08 6:18
supercat95-Nov-08 6:18 
GeneralRe: C/C++ or C#? Pin
Thomas Weller5-Nov-08 6:48
Thomas Weller5-Nov-08 6:48 
GeneralRe: C/C++ or C#? Pin
Thomas Weller5-Nov-08 6:55
Thomas Weller5-Nov-08 6:55 
GeneralRe: C/C++ or C#? Pin
supercat95-Nov-08 10:17
supercat95-Nov-08 10:17 
GeneralRe: A big if Pin
Paul Conrad2-Nov-08 5:03
professionalPaul Conrad2-Nov-08 5:03 
GeneralRe: A big if Pin
Tom Deketelaere2-Nov-08 23:30
professionalTom Deketelaere2-Nov-08 23:30 
GeneralRe: A big if Pin
Kevin McFarlane5-Nov-08 23:53
Kevin McFarlane5-Nov-08 23:53 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.