¿Por qué un bloque Try / Catch crea un nuevo ámbito variable?

Por ejemplo:

try
{
    SomeObject someObject = new SomeObject();
    someObject.dangerousMethod();
}
catch(Exception e)
{
}
someObject.anotherMethod(); //can't access someObject!

Pero puedes declararlo antes de latry/catch Bloque y luego funciona bien:

SomeObject someObject;
try
{
    someObject = new SomeObject();
    someObject.dangerousMethod();
}
catch(Exception e)
{
}
someObject.anotherMethod(); //works fine

Me pregunto la razón de diseño para esto. ¿Por qué se crean objetos dentro de latry/catch ¿Bloque no en alcance con el resto del método? Tal vez no estoy entendiendo en el fondo cómo untry/catch Funciona además de solo observar porExceptions arrojado

Respuestas a la pregunta(5)

Su respuesta a la pregunta