Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Threading;
- namespace Recetas.Multithreading.Cap01.R0111
- {
- public sealed class ManejoExcepcionesThread
- {
- public static void Main()
- {
- Console.Title = "Manejo de Excepciones en Threads ---";
- Console.WriteLine ();
- // Creación de thread con método adyacente que cuenta
- // con manejo de excepciones interno:
- Thread t1 = new Thread (ThreadConBloqueTryCatch);
- // Inicio de ejecución:
- t1.Start();
- // Espera a que finalice para continuar:
- t1.Join();
- // Demostración de ejecución de thread con método adyacente
- // que no cuenta con su propia implementación para el
- // manejo de excepción:
- try
- {
- Thread t2 = new Thread (ThreadSinBloqueTryCatch);
- t2.Start();
- }
- catch (Exception ex)
- {
- Console.WriteLine ("Esta región de manejo de excepción no es alcanzada.");
- }
- }
- // Método que simula el lanzamiento de una excepción,
- // pero que no cuenta con un bloque de try-catch:
- private static void ThreadSinBloqueTryCatch()
- {
- Console.WriteLine ("Inicio de ejecución de un thread con fallas.");
- Thread.Sleep (TimeSpan.FromSeconds (2));
- throw new Exception ("¡Falla!");
- }
- // Método que simula el lanzamiento de una excepción:
- private static void ThreadConBloqueTryCatch()
- {
- try
- {
- Console.WriteLine ("Inicio de ejecución de un thread con fallas.");
- Thread.Sleep (TimeSpan.FromSeconds (1));
- throw new Exception ("¡Falla!");
- }
- catch (Exception ex)
- {
- Console.WriteLine ("Control sobre la excepción: {0}",
- ex.Message
- );
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement