Evento
Construír aplicacións e axentes de IA
Mar 17, 9 PM - Mar 21, 10 AM
Únete á serie de encontros para construír solucións de IA escalables baseadas en casos de uso do mundo real con compañeiros desenvolvedores e expertos.
Rexistrar agoraEste explorador xa non é compatible.
Actualice a Microsoft Edge para dispoñer das funcionalidades máis recentes, as actualizacións de seguranza e a asistencia técnica.
Cuando se intenta generar mensajes de diagnóstico significativos para excepciones, mantener la inclusión de información pertinente puede suponer un desafío. El mensaje de excepción estándar a menudo carece de detalles críticos que acompañan a la excepción, mientras que la invocación del método Exception.ToString produce un exceso de información de estado.
Este artículo se basa en el paquete NuGet Microsoft.Extensions.Diagnostics.ExceptionSummarization.
Normalmente, las etiquetas de métrica admiten un número limitado de valores distintos y, como tal, no son adecuados para representar valores que son muy variables, como el resultado de Exception.ToString(). Un resumen de excepciones representa una versión de cardinalidad baja de la información de una excepción, adecuada para estos casos.
El objetivo del resumen de excepciones es dos veces:
La interfaz IExceptionSummarizer ofrece métodos para extraer detalles cruciales de los tipos de excepción reconocidos, lo que proporciona un singular string
que sirve como base para elaborar mensajes de diagnóstico de alta calidad.
El método IExceptionSummarizer.Summarize recorre sistemáticamente la lista de resumidores registrados hasta que identifica un resumidor capaz de manejar el tipo de excepción específico. En caso de que ningún generador de resumen sea capaz de reconocer el tipo de excepción, se proporciona en su lugar un resumen de excepciones predeterminado significativo.
El resultado del método Summarize
devuelve una estructura ExceptionSummary y contiene las siguientes propiedades:
En el ejemplo siguiente se muestra cómo usar la interfaz IExceptionSummarizer
para recuperar un resumen de una excepción.
using System.Net;
using System.Net.Sockets;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Diagnostics.ExceptionSummarization;
// Add exception summarization services.
var services = new ServiceCollection()
.AddExceptionSummarizer(static builder => builder.AddHttpProvider());
var provider = services.BuildServiceProvider();
// Get the exception summarizer.
IExceptionSummarizer summarizer = provider.GetRequiredService<IExceptionSummarizer>();
// Define exceptions to summarize.
Exception[] exceptions =
[
new OperationCanceledException("Operation cancelled..."),
new TaskCanceledException("Task cancelled..."),
new SocketException(10_024, "Too many sockets open..."),
new WebException("Keep alive failure...",
WebExceptionStatus.KeepAliveFailure)
];
foreach (var exception in exceptions)
{
// Summarize the exception.
ExceptionSummary summary = summarizer.Summarize(exception);
Console.WriteLine(summary);
}
Console.ReadLine();
El código anterior:
AddExceptionSummarizer
acepta un delegado que se usa para configurar la instancia de ExceptionSummarizerBuilder
.builder
se usa para agregar el proveedor HTTP, que controla las excepciones de tipo:
ServiceProvider
a partir de la instancia de ServiceCollection
.IExceptionSummarizer
de la instancia de ServiceProvider
.Summarize
en cada excepción y mostrando el resultado.Nota
El enfoque principal en el diseño de todas las implementaciones de resumen de excepciones es brindar conveniencia de diagnóstico, en lugar de priorizar la protección de la información de identificación personal (PII). El ExceptionSummary.Description no contiene información confidencial, pero el ExceptionSummary.AdditionalDetails puede contener información confidencial en función de la implementación.
Comentarios de .NET
.NET é un proxecto de código aberto. Selecciona unha ligazón para ofrecer comentarios:
Evento
Construír aplicacións e axentes de IA
Mar 17, 9 PM - Mar 21, 10 AM
Únete á serie de encontros para construír solucións de IA escalables baseadas en casos de uso do mundo real con compañeiros desenvolvedores e expertos.
Rexistrar agoraFormación
Módulo
Implementación del control de excepciones en aplicaciones de consola de C# - Training
En este módulo se explora el uso de excepciones y el proceso de control de excepciones en aplicaciones de consola de C#. Las actividades prácticas proporcionan experiencia en la implementación de patrones de control de excepciones para varios escenarios de codificación.
Documentación
Información general sobre las métricas - .NET
Información general sobre el uso de métricas para supervisar una aplicación .NET
Descripción de las distintas API de métricas - .NET
Guía de las distintas API de métricas que ofrecen .NET y terceros.
Adición de nuevas métricas a una aplicación o biblioteca de .NET