Например:
try
{
SomeObject someObject = new SomeObject();
someObject.dangerousMethod();
}
catch(Exception e)
{
}
someObject.anotherMethod(); //can't access someObject!
Но вы можете объявить его перед блоком try/catch
, а затем он отлично работает:
SomeObject someObject;
try
{
someObject = new SomeObject();
someObject.dangerousMethod();
}
catch(Exception e)
{
}
someObject.anotherMethod(); //works fine
Мне просто интересно, почему это связано с дизайном. Почему Объекты, созданные в блоке try/catch
, не входят в область действия с остальной частью метода? Возможно, я не понимаю, как работает try/catch
, кроме того, что вы смотрите на Exceptions
.