<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Un programador más &#187; gestion de errores</title>
	<atom:link href="http://www.unprogramadormas.com/tag/gestion-de-errores/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.unprogramadormas.com</link>
	<description>Experiencias de un programador curioso del SEO</description>
	<lastBuildDate>Mon, 07 Mar 2011 16:54:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Custom exceptions en C#</title>
		<link>http://www.unprogramadormas.com/14/01/2010/custom-exceptions-en-csharp/</link>
		<comments>http://www.unprogramadormas.com/14/01/2010/custom-exceptions-en-csharp/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 14:39:48 +0000</pubDate>
		<dc:creator>jmnieves</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[gestion de errores]]></category>

		<guid isPermaLink="false">http://www.unprogramadormas.com/?p=464</guid>
		<description><![CDATA[En ocasiones queremos lanzar custom exceptions que nos permitan lanzar errores personalizados cuando por ejemplo se ha hecho una llamada al servidor con un parametro incorrecto pero no queremos utilizar una de las excepciones predefinidas ya que queremos guardar y generar más información sobre la excepción. En este articulo os dejo un ejemplo de como]]></description>
			<content:encoded><![CDATA[<p>En ocasiones queremos lanzar <strong>custom exceptions</strong> que nos permitan lanzar errores personalizados cuando por ejemplo se ha hecho una llamada al servidor con un parametro incorrecto pero no queremos utilizar una de las <a title="Excepciones predefinidas" href="http://www.clikear.com/manuales/csharp/c130.aspx" target="_blank">excepciones predefinidas</a> ya que queremos guardar y generar más información sobre la excepción. En este articulo os dejo un ejemplo de como crear nuestro propio <strong>custom exception en c#</strong>.</p>
<pre class="brush: csharp; title: ; notranslate">
  public class MyCustomException : ApplicationException
    {
        public MyCustomExceptionException(string message)
            : base(message)
        {
        }
    }
</pre>
<p>Cuando queremos usar nuestro <strong>custom exception</strong> en la creación de un error controlado lo hariamos de la siguiente forma:</p>
<pre class="brush: csharp; title: ; notranslate">
throw new MyCustomException(&quot;Mensaje de error customizado&quot;);
</pre>
<p>Podriamos usarlo en el control de errores mediante la captura de errores en global.asax redirigiendolos a una página creada para gestionar los mensajes de error a nuestros usuarios:</p>
<pre class="brush: csharp; title: ; notranslate">
protected void Application_Error(Object sender, EventArgs e)
 {
 if (Context != null &amp;&amp; Context.IsCustomErrorEnabled)
 {
 Server.Transfer(&quot;~/Error.aspx&quot;, false);
 }
 }
</pre>
<p>Una vez redirigo el error podriamos usarlo de la siguiente forma:</p>
<pre class="brush: csharp; title: ; notranslate">
  Exception ex = Server.GetLastError();
            if (ex != null)
            {
                Exception innerException = ex.InnerException;
                if (innerException != null)
                {
                    if (innerException is MyCustomException)
                    {
                          HttpContext.Current.Response.StatusCode = 401;
                          this.lblError.Text = ex.Message;
                    }
              }
</pre>
<p>Espero que os sea útil y como siempre para vuestra comodida tambien en <a title="Código en pastebin" href="http://pastebin.com/df0acb8">pastebin</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.unprogramadormas.com/14/01/2010/custom-exceptions-en-csharp/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

