Código con cuatro botones de radio:
- De regreso en INTENTAR
- De regreso en la CAPTURA
- Tiro en la CAPTURA
Acabado de COGER
private void checkFinally()
{
try
{
doFinally();
}
catch
{
Console.WriteLine(" Breaking news: a crash occured. ");
}
}
private void doFinally()
{
Console.WriteLine(" ");
Console.Write("Here goes: "
+ (radioReturnInTry.Checked ? "2. Return in try: "
: (radioReturnInCatch.Checked? "3. Retrun in catch: "
: (radioThrowInCatch.Checked? "4. Throw in catch: "
: "1. Continue in catch: "))) );
try
{
if (radioReturnInTry.Checked)
{
Console.Write(" Returning in try. ");
return;
}
Console.Write(" Throwing up in try. ");
throw new Exception("check your checkbox.");
}
catch (Exception ex)
{
Console.Write(" ...caughtcha! ");
if (radioReturnInCatch.Checked)
{
Console.Write("Returning in catch. ");
return;
}
if (radioThrowInCatch.Checked)
{
Console.Write(" Throwing up in catch. ");
throw new Exception("after caught");
}
}
finally { Console.Write(" Finally!!"); }
Console.WriteLine(" Done!!!"); // before adding checkboxThrowInCatch,
// this would never happen (and was marked grey by ReSharper)
}
Salida:
- Aquí va: 1. Continuar en la captura: Tirar para arriba en el intento. ...caughtcha! Por fin!! Hecho!!!
- Aquí va: 2. De regreso en probar: Volver en el intento. Por fin!!
- Aquí va: 3. Retrun en la captura: Tirar para arriba en el intento. ...caughtcha! Regresando en la captura. Por fin!!
- Aquí va: 4. Tiro en la captura: Tirar para arriba en el intento. ...caughtcha! Vomitando en la captura. Por fin!! Noticias de última hora: un accidente ocurrido.
Para resumir:
Finalmente se tiene el cuidado de dos cosas:
- De código que devuelve en la prueba o en la captura.
- O Si había una excepción en el intento, Y LANZAR una excepción en la captura,
- o, si usted tuvo una excepción en el intento, Y NO COGER esa excepción,
Finalmente, para resumir "FINALMENTE": Finalmente no hace nada especial si usted ha intentado,y
- NO VOLVER,
- y atrapado en las excepciones durante el juicio, y, a continuación,
- NO RETORNO en la captura, y
- NO TIRAR o tener código que lanza.
Y por último pero no menos importante (por fin):
Si usted tiene una excepción en el código que NO cuajó, el código de la mosca, SIN LLEGAR a LA FINAL.
Espero que esto está claro. (Ahora es a mí...)
Moshe