I am currently going through several interview-processes. During the last technical interview I realized, that my knowledge of my favorite programming languages is not as profound as I would like it to be. I always dismissed this shortcoming with the excuse, that such "low-level stuff" was not my primary concern. But now I remembered a quote from my German teacher:
Those without sophisticated vocabulary will stay unredeemed!
- Markus Lüdin
Thinking about the truth of this, I set out to learn to express myself: My first stop was the try-catch-playground in C#-world.
In the sandbox a toddler had built the following: try{
return true;
}
finally{
return false;
} |
|
I stopped and began to stare ... schizophrenia started to fill my head ... but fortunately my buddy, the C#-Compiler, stepped in and rebuked the toddler: This was not allowed!
But the toddler was not so easily intimidated: He dug and sculpted with his little hands, and as I stayed and watched, schizophrenia slowly crept back into my head:
try
{
throw new ArgumentException("First Ex!");
}
finally
{
throw new ApplicationException("Second Ex!");
}
|
A inexplicable urge came over me, and I started to build fervently my own constructs in the sand around those of the toddler: |
[Test]
public void First_Exception_Is_Lost()
{
SchizophreniaTrap trap = new SchizophreniaTrap();
try{
trap.TryFinallyException();
}
catch(ArgumentException ex){
Debug.WriteLine("Caught First Ex");
Assert.Fail("Ha! Things dont just disappear!");
}
catch(ApplicationException ex){
Debug.WriteLine("Caught Second");
}
}
Oh no! The test passed! I started to scream! The first exception was lost! It had to be there somewhere in the sand! I started digging...