Например:
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
.