Dlaczego blok Try / Catch tworzy nowy zakres zmiennych?
Na przykład:
try
{
SomeObject someObject = new SomeObject();
someObject.dangerousMethod();
}
catch(Exception e)
{
}
someObject.anotherMethod(); //can't access someObject!
Ale możesz to zadeklarować przedtry/catch
blok, a następnie działa dobrze:
SomeObject someObject;
try
{
someObject = new SomeObject();
someObject.dangerousMethod();
}
catch(Exception e)
{
}
someObject.anotherMethod(); //works fine
Zastanawiam się tylko nad powodem tego projektu. Dlaczego obiekty są tworzone wtry/catch
blok nie mieści się w zakresie z resztą metody? Może nie rozumiem głęboko, jaktry/catch
działa oprócz oglądaniaExceptions
rzucony.