BizTalk 2006 R2的异常处理
-
20-09-2019 - |
题
我有一个BizTalk 2006 R2项目(与ESB指南一起使用),我正在从乐团调用C#代码中的静态方法,此方法使用一类将文件数据加载到Xlang消息正文中,当时我通过FilePath的第0部分'存在内部班级捕获异常,但不要将其扔掉(在静态方法中,有一个捕获块,在乐团中,有例外的真实处理)
静态方法是:
public static XLANGMessage LoadFileIntoMessage(XLANGMessage message, string filePath,Encoding encoding)
{
try
{
IStreamFactory sf = new FileStreamFactory(filePath,encoding);
message[0].LoadFrom(sf);
return message;
}
catch (Exception ex)
{
throw ex;
}
}
加载文件流的类是:
private class FileStreamFactory : IStreamFactory
{
string _fname;
Encoding _encoding;
public FileStreamFactory(string fname,Encoding encoding)
{
_fname = fname;
_encoding = encoding;
}
public Stream CreateStream()
{
try
{
StreamReader sr;
sr = new StreamReader
(
_fname,
_encoding
);
return sr.BaseStream;
}
catch (Exception ex)
{
throw ex;
}
}
}
我从编排中调用静态方法,并期望在课后我的编排中捕获异常,该方法得到了。
解决方案
我不确定这里是什么实际问题。...您在谈论如何在编排中捕捉异常吗?如何使其进入ESB异常处理系统或什么?
要处理编排中的异常,您需要使用示波器形状(将其放入可以抛出异常的代码/形状的位置),然后在其上添加异常处理程序(有点像try/catch块)。
对于ESB的东西,请参阅此处: http://msdn.microsoft.com/en-us/library/ee250235(V=BTS.10).aspx
最后,请允许我说:请不要像您已经在代码中所做的那样处理异常。您不应该仅仅抓住例外才能再次扔它。这是一种非常差的编程实践,它会损害性能,也会使您失去原始的例外堆栈痕迹,从而使诊断和解决任何问题变得更加困难。看 http://winterdom.com/2002/09/rethrowingexceptionsinc
不隶属于 StackOverflow