Ваш блок try не связан с оператором if. Хорошей практикой в Java всегда является использование фигурных скобок для блоков if / else, если фигурные скобки не используются, будет выполнена только первая строка кода относительно ответа if / else.
Например, в следующем коде
if(someTest())
doSomething();
doSomethingElse();
doSomethingElse()
ВСЕГДА будет выполняться.
и в этом коде:
if(someTest()){
doSomething();
doSomethingElse();
}
doSometingElse () будет выполняться только в том случае, если someTest () имеет значение true
csc.exe является определенно частью самой платформы, не только SDK.
Однако Вы, возможно, не должны обращаться к csc.exe во-первых - существует CSharpCodeProvider, который позволяет Вам скомпилировать код программно.
Вы могли бы найти эту статью от Microsoft полезной - http://support.microsoft.com/kb/304655. Это дает некоторые примеры того, как программно скомпилировать код с помощью CodeDomProvider или CSharpCodeProvider.