我有一个将SAP与RFC调用连接起来的应用程序,当连接失败时,我需要向用户显示一个通知,同时尝试用SAP建立RFC调用。我得到了下面的例外。
{
SAP.Middleware.Connector.RfcCommunicationException:
LOCATION CPIC (TCP/IP) on local host with Unicode
ERROR partner '151.9.39.8:8010' not reached
TIME Wed Jul 16 10:32:05 2014
RELEASE 720
COMPONENT NI (network interface)
VERSION 40
RC -10
MODULE nixxi.cpp
LINE 3286
DETAIL NiPConnect2: 151.9.39.8:8010
SYSTEM CALL connect
ERRNO 10060
ERRNO TEXT WSAETIMEDOUT: Connection timed out
COUNTER 2
} 通过使用这个异常,我需要通知用户。但是,我如何确定它是否是SAP.Middleware.Connector.RfcCommunicationException,因为我也在处理其他异常。是否有任何方法可以不连接上述异常字符串来获取异常的类型。
在我的try catch块中,我目前正在这样做,但它不起作用。
catch (Exception ex)
{
if (ex.ToString().ToLower() == "rfccommunicationexception")
{
MessageError = "RFC error";
}
}发布于 2014-07-16 05:23:31
您可以使用is
例如:-
catch (Exception exception )
{
if (exception is SAP.Middleware.Connector.RfcCommunicationException)
{
////Your code
}
}或者,正如Resharper所建议的那样,最好抓住具体的例外情况,如下所示:
catch(SAP.Middleware.Connector.RfcCommunicationException)
{
// Your code
}发布于 2014-07-16 05:23:57
显式捕获异常:
catch(SAP.Middleware.Connector.RfcCommunicationException)
{
// RFC exception
}
catch(Exception e)
{
// All other exceptions
} 发布于 2014-07-16 05:25:25
实现这一目标的最佳方法是有多个捕获块:
try
{
// your code
}
catch(RfcCommunicationException rfcEx)
{
// handle rfc communication exception
}
cathc(Exception ex)
{
// handle other exception
}https://stackoverflow.com/questions/24772736
复制相似问题