Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

153
Vistas
.Net cómo detectar si la excepción incorporada se lanza manualmente a través del código al ejecutar el ensamblaje

En mi código hay muchas áreas en las que "lanzamos" manualmente InvalidOperationException. Tenemos controladores específicos para manejar este tipo de excepción. Sin embargo, existe el requisito de que tenemos que escribir alguna lógica basada en el hecho de si la excepción se produjo debido a un lanzamiento o si provino del sistema. A continuación se muestra el ejemplo:

 static void Main(string[] args) { try { Console.WriteLine("Hello World!"); //throwFirstLayer(); //if i uncomment this i am throwing the error manually var people = new List<Person>(); people.Add(new Person("John", "Doe")); people.Add(new Person("Jane", "Doe")); people.Sort(); //Suppose in this line system throws InvalidOp exception foreach (var person in people) Console.WriteLine("{0} {1}", person.FirstName, person.LastName); } catch(InvalidOperationException ioex) { var e = ioex; } } public static void throwFirstLayer() { throw new InvalidOperationException("manual"); } public class Person { public Person(String fName, String lName) { FirstName = fName; LastName = lName; } public String FirstName { get; set; } public String LastName { get; set; } }

aquí, dentro del bloque catch, quiero detectar si la excepción la arrojé manualmente desde el código o si el sistema la generó debido a una operación no válida real.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

primero debe crear su propia clase de excepción:

 public class MyInvalidOperationException : Exception { }

y lanza tu excepción personalizada cuando lo necesites. (manuales)

 throw new MyInvalidOperationException();
over 4 years ago · Santiago Trujillo Denunciar

0

Podría examinar el seguimiento de la pila de la excepción y ver de dónde se originó, pero eso es lento y propenso a errores en producción debido a las optimizaciones JIT.

Cuestionaría la sabiduría de un diseño que necesita esto en primer lugar, pero si realmente, realmente, realmente necesita hacerlo, sugeriría crear su propia clase específica derivada de InvalidOperationException : asegúrese de lanzar solo eso ( en lugar de InvalidOperationException simple), y luego puede verificar si una instancia determinada tiene un tipo concreto que es su tipo de excepción personalizado o no.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda