Suppose a German SS officer knocked on my door, asking me whether I had any Jews. And suppose further that I had two Jews in a secret compartment in the attic that he'd never be able to find. Everybody will agree that I must lie and say I haven't any Jews in my house.
But I'd have to disobey Kant's categorical imperative "do not lie", because I felt obliged to "not betray innocent people leading to their death".
Both imperatives can be supported if I ask myself the question "what if everyone did it?". If everyone lied whenever they felt like it, society and civilization would collapse. Therefore I must never lie. But society would be a grim, inhumane place if everyone cooperated in killing the innocent. Therefore I must never betray those under my protection.
How can this be solved? I remember hearing two "solutions":
I must heed both imperatives and choose a third option, thereby violating neither: "I refuse to answer you". This would result in my death, but I would have upheld both imperatives.
I find this absurd; I do not think Kant would have wanted this. And yet, when challenged by Constant with a similar situation, he said that one should challenge the murderer or refuse to answer. In this case, that would lead to my house being burned down, the Jews dying an even more horrible death.
The "do not lie" imperative is too broadly formulated: it should be "do not lie, except when your lie would save another's life". I find this very weak: the power of a categorical imperative would be that it is a broad statement. It should be a universal law.
The fundamental problem would seem to be that each rule saying "I wouldn't want everyone to do this" has a reasonable exception, and that it should not be left to each single person to determine what the exceptions are depending on a particular situation. I believe Schopenhauer offered similar criticism.
How did Kant solve this problem while keeping his categorical imperatives intact? Or, if he didn't, how could it be solved hypothetically?