Skip to content

Instantly share code, notes, and snippets.

View javierguerrero's full-sized avatar
🏠
Working from home

Javier Guerrero javierguerrero

🏠
Working from home
View GitHub Profile
@javierguerrero
javierguerrero / exception_handling_csharp_chapter6_6.cs
Created November 9, 2024 03:16
exception_handling_csharp_chapter6_6.cs
using Serilog;
class Program
{
static void Main()
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.WriteTo.Console()
.WriteTo.File("logs/log.txt", rollingInterval: RollingInterval.Day)
@javierguerrero
javierguerrero / exception_handling_csharp_chapter6_5.cs
Created November 9, 2024 03:15
exception_handling_csharp_chapter6_5.cs
try
{
MetodoCritico1();
MetodoCritico2();
MetodoCritico3();
}
catch (Exception ex)
{
Console.WriteLine("Error en el código crítico: " + ex.Message);
}
@javierguerrero
javierguerrero / exception_handling_csharp_chapter6_4.cs
Created November 9, 2024 03:13
exception_handling_csharp_chapter6_4.cs
public async Task ObtenerDatosAsync()
{
try
{
await RealizarLlamadaAPIAsync();
}
catch (HttpRequestException ex)
{
Console.WriteLine("Error en la solicitud HTTP: " + ex.Message);
}
@javierguerrero
javierguerrero / exception_handling_csharp_chapter6_3.cs
Created November 9, 2024 03:11
exception_handling_csharp_chapter6_3.cs
try
{
// Código que puede lanzar una excepción
}
catch (Exception ex)
{
Log.Error(ex, "Error inesperado en la operación");
}
@javierguerrero
javierguerrero / exception_handling_csharp_chapter6_2.cs
Created November 8, 2024 22:02
exception_handling_csharp_chapter6_2.cs
try
{
MetodoCritico();
}
catch (Exception ex)
{
Console.WriteLine($"Error en MetodoCritico: {ex.Message}");
throw; // Relanza la excepción después de registrar detalles
}
@javierguerrero
javierguerrero / exception_handling_csharp_chapter6_1.cs
Created November 8, 2024 21:59
exception_handling_csharp_chapter6_1.cs
try
{
// Código que lanza una excepción
}
catch (Exception ex)
{
Console.WriteLine("Mensaje de error: " + ex.Message);
Console.WriteLine("Traza de pila: " + ex.StackTrace);
if (ex.InnerException != null)
{
@javierguerrero
javierguerrero / exception_handling_csharp_chapter5_9.cs
Created October 28, 2024 20:13
exception_handling_csharp_chapter5_9.cs
public async Task<string> ObtenerDatosAsync()
{
try
{
return await ClienteHttp.GetStringAsync("https://api.example.com/data");
}
catch (HttpRequestException ex)
{
Console.WriteLine("Error al obtener los datos: " + ex.Message);
return null;
@javierguerrero
javierguerrero / exception_handling_csharp_chapter5_8.cs
Created October 28, 2024 20:12
exception_handling_csharp_chapter5_8.cs
try
{
// Código que puede lanzar excepciones
}
catch (Exception ex)
{
Log.Error(ex, "Error inesperado en la operación.");
}
@javierguerrero
javierguerrero / exception_handling_csharp_chapter5_7.cs
Created October 28, 2024 20:09
exception_handling_csharp_chapter5_7.cs
var circuitBreakerPolicy = Policy
.Handle<SqlException>()
.CircuitBreaker(2, TimeSpan.FromMinutes(1));
circuitBreakerPolicy.Execute(() => AccesoBaseDeDatos());
@javierguerrero
javierguerrero / exception_handling_csharp_chapter5_6.cs
Created October 28, 2024 20:08
exception_handling_csharp_chapter5_6.cs
var policy = Policy
.Handle<HttpRequestException>()
.WaitAndRetry(3, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt)));
policy.Execute(() => RealizarLlamadaHttp());