Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace Articulos.Excepciones.Parte4
- {
- // Crea una versión personalizada de la excepción
- // de división entre cero (0):
- public class DivisonPorCeroException : Exception
- {
- private const int DivisionPorCeroHResult = unchecked((int)0x81234567);
- // Asigna un valor a la propiedad HResult heredada:
- public DivisonPorCeroException( string mensaje, Exception excepcionAnidada)
- : base (string.Format("(HRESULT:0x{1:X8}) {0}", mensaje, DivisionPorCeroHResult),
- excepcionAnidada)
- {
- HResult = DivisionPorCeroHResult;
- }
- }
- public sealed class UsoHResult
- {
- public static void Main()
- {
- Console.WriteLine ("\nEjemplo de uso de la propiedad `HResult`\n");
- // Genera una excepción de forma intencionada:
- try
- {
- try
- {
- int cero = 0;
- int div = 1 / cero;
- }
- catch(Exception e)
- {
- throw new DivisonPorCeroException(
- "Excepción por intento de división por cero. Genera una segunda excepción.",
- e
- );
- }
- }
- catch( Exception e)
- {
- Console.WriteLine (e.ToString());
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement