Вы все еще можете получить значение переменных внутри блока catch, если оно является либо параметрами, либо переменными, объявленными над блоком try.
Вы должны либо перехватить определенные исключения, такие как аргумент nulllexception / formatexception, либо обернуть отдельные операции внутри метода в блок try / catch, чтобы узнать контекст, в котором было сгенерировано исключение.
void Method(int i, string j)
{
bool p;
try
{
}
catch(FormatException e)
{
//value of i, j, p are available here.
}
}
Идеалспособ состоит в том, чтобы проверить возможные ситуации, в которых генерируются исключения (например, formatexceptions), и предотвратить их.Они дороги и прерывают процесс.