2009-06-08 9 views
5

Ho un ambito BizTalk (2006 R2) con una parte "Catch Exception" in cui ho inserito una semplice forma Expression per archiviare il messaggio di eccezione in una variabile di orchestrazione.Ambito BizTalk "Eccezione catch" Generale Messaggio eccezione

Il problema è che se si sceglie il tipo di eccezione come "Eccezione generale", non è possibile fornire un nome oggetto di eccezione. Dove posso recuperare le informazioni sulle eccezioni in questa situazione?

Quindi ho pensato di scegliere il tipo di eccezione come System.Exception ma non è possibile. Posso selezionare solo tipi di eccezioni .NET più specifici.

Sto sbagliando o è così che funziona BizTalk?

risposta

8

Pensa di catturare una "eccezione generica" ​​come l'equivalente di eseguire un blocco "catch {}" in C# senza alcuna eccezione dichiarata. Quindi, sì, non c'è modo di ottenere il messaggio di eccezione a quel punto perché l'eccezione che si presenta potrebbe (potenzialmente) essere un oggetto non derivato da System.Exception.

Non sono sicuro di cosa intendi, tuttavia, quando dici che non puoi scegliere System.Exception come tipo di eccezione da catturare. Puoi certamente farlo e l'ho fatto diverse volte in passato. Diamine, ho appena provato di nuovo ed è lì.

Si verificano errori? Non appare nella finestra di selezione del tipo?

+0

hai ragione.Ho trovato System.Exception. Ho appena capito come funziona la finestra di selezione. – lox

+0

Ogni eccezione in .NET deriva da System.Exception. – Slugart

1

Il mio amico è possibile scegliere il tipo di eccezione "System.Exception", basta fare clic su assembly "mscorlib" sul pannello sinistro, quindi fare clic su namespace "System", nella parte destra apparirà (ordine alfabetico) i nomi delle classi mscorlib, scroll giù e vedrai "System.Exception".

Spero che ti aiuta ...

Saluti

0

ho imbattuto in questo stesso problema con altre selezioni nella finestra delle proprietà in un'orchestrazione. Sembra essere un bug all'interno di Visual Studios. Quando provo a selezionare un assembly .NET, viene visualizzato un errore che indica che la proprietà "non è valida". Devo chiudere e aprire di nuovo VS e il messaggio sembra andare via.

2

La differenza tra i due metodi è che si fornisce un handle all'oggetto eccezione e l'altro no. È necessario selezionare "Eccezione generale" quando non sono necessarie le informazioni contenute nell'oggetto Eccezione. Altrimenti puoi selezionare la classe System.Exception da mscorlib.

0

per l'eccezione generale: In caso di C#, questo si comporta come catch{}

Si può usare quando non si desidera controllare oggetto di eccezione o semplicemente si vuole ri-lancio eccezione.

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

Tutte le eccezioni C# ereditano da questa classe di eccezioni. Non cattura tutte le eccezioni nel contesto di biztalk.

Si prega di dare un'occhiata alle schermate per il vostro riferimento.

Screenshot 1

Screenshot 2

+0

questa risposta non spiega nulla che non è stato incluso nelle altre risposte ... –