2009-06-08 18 views
5

Tengo un ámbito BizTalk (2006 R2) con una parte "Excepción de captura" en la que he puesto una forma de expresión simple para almacenar el mensaje de excepción en una variable de orquestación.Ámbito de BizTalk "Excepción de captura" Mensaje de excepción general

El problema es que si elijo que el tipo de excepción sea "Excepción general", entonces no consigo proporcionar un nombre de objeto de excepción. ¿Dónde obtengo información de excepción en esta situación?

Luego pensé que simplemente elegiría el tipo de excepción como System.Exception, pero eso no es posible. Solo puedo seleccionar tipos de excepción .NET más específicos.

¿Lo estoy haciendo mal o es así como funciona BizTalk?

Respuesta

8

Piense en atrapar una "Excepción genérica" ​​como el equivalente a hacer un bloque "catch {}" en C# sin ninguna excepción declarada. Por lo tanto, sí, no hay forma de obtener el mensaje de excepción en ese momento porque la excepción que aparece podría ser (potencialmente) un objeto no derivado de System.Exception.

No estoy seguro de lo que quiere decir, sin embargo, cuando dice que no puede elegir System.Exception como el tipo de excepción para capturar. Ciertamente puede hacer eso y lo he hecho varias veces en el pasado. Diablos, lo intenté de nuevo y está allí.

¿Recibió usted algún error? ¿No está apareciendo en el cuadro de diálogo de selección de tipo?

+0

tiene usted razón.Encontré System.Exception. Acabo de descubrir cómo funciona realmente el diálogo de selección. – lox

+0

Todas las excepciones en .NET derivan de System.Exception. – Slugart

1

Mi amigo puede elegir el tipo de excepción "System.Exception", simplemente haga clic en ensamblar "mscorlib" en el panel izquierdo, luego haga clic en el espacio de nombres "System", en el lado derecho aparecerá (ordenado alfabéticamente) nombres de clases de mscorlib, scroll abajo y verá "System.Exception".

espero que le ayuda ...

Saludos

0

he encontré con este mismo problema con otra selección en la ventana de propiedades en una orquestación. Parece ser un error dentro de Visual Studios. Cuando intento seleccionar un ensamblado .NET, aparece un error que indica que la propiedad "no es válida". Tengo que cerrar y abrir VS nuevamente y el mensaje parece desaparecer.

2

La diferencia entre los dos métodos es que uno le da un control al objeto de excepción y el otro no. Debe seleccionar "Excepción general" cuando no necesite la información contenida en el objeto Excepción. De lo contrario, puede seleccionar la clase System.Exception de mscorlib.

0

Para la excepción general: En caso de C#, este se comporta como catch{}

Se puede utilizar cuando no se desea comprobar objeto de excepción o simplemente quiere volver a tiro excepción.

System.Exception: behaves like catch(exception ex){} 

Todo C# excepciones heredan de esta clase de excepción. No detecta todas las excepciones en el contexto de biztalk.

Por favor, eche un vistazo a las capturas de pantalla para su referencia.

Screenshot 1

Screenshot 2

+0

esta respuesta no explica nada que no se haya incluido en las otras respuestas ... –

Cuestiones relacionadas