This is the kind of code you'll find back in the . NET framework. It is rather important there, source code is (was) not readily available.
If the argument check were not included, you'd get an exception that is hard to diagnose. It bombs on invisible code, concluding that the argument was wrong is not exactly easy.
I try not to add noise (the code without value). If my exception would be more useful to me then I would throw my exception, but if it's all the same then clarity of code takes precedence.
I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.