Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase AggregateException

 

Publicado: octubre de 2016

Representa uno o más errores que se producen durante la ejecución de una aplicación.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

System.Object
  System.Exception
    System.AggregateException

[SerializableAttribute]
public class AggregateException : Exception

NombreDescripción
System_CAPS_pubmethodAggregateException()

Inicializa una nueva instancia de la clase AggregateException con un mensaje proporcionado por el sistema que describe el error.

System_CAPS_pubmethodAggregateException(Exception[])

Inicializa una nueva instancia de la AggregateException clase con referencias a las excepciones internas que son la causa de esta excepción.

System_CAPS_pubmethodAggregateException(IEnumerable<Exception>)

Inicializa una nueva instancia de la AggregateException clase con referencias a las excepciones internas que son la causa de esta excepción.

System_CAPS_protmethodAggregateException(SerializationInfo, StreamingContext)

Inicializa una nueva instancia de la clase AggregateException con datos serializados.

System_CAPS_pubmethodAggregateException(String)

Inicializa una nueva instancia de la clase AggregateException con un mensaje especificado que describe el error.

System_CAPS_pubmethodAggregateException(String, Exception)

Inicializa una nueva instancia de la clase AggregateException con el mensaje de error especificado y una referencia a la excepción interna que representa la causa de esta excepción.

System_CAPS_pubmethodAggregateException(String, Exception[])

Inicializa una nueva instancia de la AggregateException clase con un mensaje de error especificado y referencias a las excepciones internas que son la causa de esta excepción.

System_CAPS_pubmethodAggregateException(String, IEnumerable<Exception>)

Inicializa una nueva instancia de la AggregateException clase con un mensaje de error especificado y referencias a las excepciones internas que son la causa de esta excepción.

NombreDescripción
System_CAPS_pubpropertyData

Obtiene una colección de pares clave-valor que proporcionan más información definida por el usuario sobre la excepción.(Heredado de Exception).

System_CAPS_pubpropertyHelpLink

Obtiene o establece un vínculo al archivo de ayuda asociado a esta excepción.(Heredado de Exception).

System_CAPS_pubpropertyHResult

Obtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica.(Heredado de Exception).

System_CAPS_pubpropertyInnerException

Obtiene la instancia Exception que produjo la excepción actual.(Heredado de Exception).

System_CAPS_pubpropertyInnerExceptions

Obtiene una colección de solo lectura de la Exception instancias que produjo la excepción actual.

System_CAPS_pubpropertyMessage

Obtiene un mensaje que describe la excepción actual.(Heredado de Exception).

System_CAPS_pubpropertySource

Devuelve o establece el nombre de la aplicación o del objeto que generó el error.(Heredado de Exception).

System_CAPS_pubpropertyStackTrace

Obtiene una representación de cadena de los marcos inmediatos en la pila de llamadas.(Heredado de Exception).

System_CAPS_pubpropertyTargetSite

Obtiene el método que produjo la excepción actual.(Heredado de Exception).

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodFlatten()

Aplana una instancia AggregateException en una única instancia nueva.

System_CAPS_pubmethodGetBaseException()

Devuelve el AggregateException que representa la causa principal de esta excepción.(Invalida Exception.GetBaseException()).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetObjectData(SerializationInfo, StreamingContext)

Inicializa una nueva instancia de la clase AggregateException con datos serializados.(Invalida Exception.GetObjectData(SerializationInfo, StreamingContext)).

System_CAPS_pubmethodGetType()

Obtiene el tipo en tiempo de ejecución de la instancia actual.(Heredado de Exception).

System_CAPS_pubmethodHandle(Func<Exception, Boolean>)

Invoca un controlador en cada Exception contenida por esta AggregateException.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodToString()

Crea y devuelve una representación de cadena del actual AggregateException.(Invalida Exception.ToString()).

NombreDescripción
System_CAPS_proteventSerializeObjectState

Ocurre cuando una excepción se serializa para crear un objeto de estado de excepción que contenga datos serializados sobre la excepción.(Heredado de Exception).

AggregateExceptionse utiliza para consolidar varios errores en un objeto único, puede producir excepciones. Se usa ampliamente en la Task Parallel Library (TPL) y Parallel LINQ (PLINQ). Para obtener más información, consulte el Aggregating Exceptions entrada en el blog de .NET Matters. Para obtener un ejemplo, vea NIB: Cómo: controlar excepciones iniciadas por tareas y How to: Handle Exceptions in a PLINQ Query.

El ejemplo siguiente, se detecta el AggregateException excepción y llama el Handle método para controlar las excepciones contiene. Compilar y ejecutar el ejemplo con la primera task1 variable debe tener como resultado un AggregateException objeto que contiene un UnauthorizedAccessException excepción. Comentar esa línea, comentario de la segunda task1 variable y compila y ejecuta el ejemplo, se genera un AggregateException objeto que contiene un IndexOutOfRangeException excepción.

using System;
using System.IO;
using System.Threading.Tasks;

class Example
{
   static void Main(string[] args)
   {
      // Get a folder path whose directories should throw an UnauthorizedAccessException.
      string path = Directory.GetParent(
                              Environment.GetFolderPath(
                              Environment.SpecialFolder.UserProfile)).FullName;

      // Use this line to throw UnauthorizedAccessException, which we handle.
      Task<string[]> task1 = Task<string[]>.Factory.StartNew(() => GetAllFiles(path));

      // Use this line to throw an exception that is not handled.
      // Task task1 = Task.Factory.StartNew(() => { throw new IndexOutOfRangeException(); } );
      try {
          task1.Wait();
      }
      catch (AggregateException ae) {
          ae.Handle((x) =>
          {
              if (x is UnauthorizedAccessException) // This we know how to handle.
              {
                  Console.WriteLine("You do not have permission to access all folders in this path.");
                  Console.WriteLine("See your network administrator or try another path.");
                  return true;
              }
              return false; // Let anything else stop the application.
          });
      }

      Console.WriteLine("task1 Status: {0}{1}", task1.IsCompleted ? "Completed," : "", 
                                                task1.Status);
   }

   static string[] GetAllFiles(string str)
   {
      // Should throw an UnauthorizedAccessException exception.
      return System.IO.Directory.GetFiles(str, "*.txt", System.IO.SearchOption.AllDirectories);
   }
}
// The example displays the following output if the file access task is run:
//       You do not have permission to access all folders in this path.
//       See your network administrator or try another path.
//       task1 Status: Completed,Faulted
// It displays the following output if the second task is run:
//       Unhandled Exception: System.AggregateException: One or more errors occurred. ---
//       > System.IndexOutOfRangeException: Index was outside the bounds of the array.
//          at Example.<Main>b__0()
//          at System.Threading.Tasks.Task.Execute()
//          --- End of inner exception stack trace ---
//          at System.AggregateException.Handle(Func`2 predicate)
//          at Example.Main(String[] args)

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 4.0
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 5.0
Windows Phone Silverlight
Disponible desde 8.0
Windows Phone
Disponible desde 8.1

Todos los miembros públicos y protegidos de AggregateException son seguras para subprocesos y se pueden usar simultáneamente desde varios subprocesos.

Volver al principio
Mostrar: