Просто любопытно: почему синтаксис try catch в С# (также Java) жестко запрограммирован для нескольких операторов? Почему язык не позволяет:
int i;
string s = DateTime.Now.Seconds % 2 == 1 ? "1" : "not 1";
try
i = int.Parse(s);
catch
i = 0;
Пример только для тривиальных целей. Я знаю там int.TryParse
.