RFC异常返回空字符串c#
本文关键字:字符串 返回 异常 RFC | 更新日期: 2023-09-27 17:50:56
我使用RFC_READ_TABLE将数据输出到我的软件,但是有很多时候,当RFC返回和异常时,它不返回描述。例如,搜索一个不存在的表或查询大量的列。它总是返回相同的标题RfcAbapException,没有细节,也没有InnerException。
在我的项目中引用的SAP dll是2.0版本。
编辑:那么问题是:为什么不返回一个异常细节呢?
据我所知,RfcAbapException中没有包含任何描述。相反,返回一个可解码的代码。这样的:
catch (RfcAbapException ex)
{
switch (ex.AbapException)
{
case (SAPProxy1.No_Function_Found):
MessageBox.Show("abap call failed because no function found");
break;
case(SAPProxy1.Nothing_Specified):
MessageBox.Show("abap call failed because nothing specified");
break;
default:
MessageBox.Show("Some unknown abap error occurred ("
+ex.AbapException.ToString()+")");
break;
} //switch
}
见原文
请检查系统中是否存在与异常相关的短转储(事务ST22
)。如果有的话,这或多或少是有意为之。正如我在这个回答中试图解释的那样(尽管没有详细说明),短转储使ABAP处理器处于无效状态。它要么无法将任何类型的消息返回给调用者,要么将任何数据返回给调用者都是不明智的,因为它可能是无效的,甚至可能存在安全问题。在这种情况下,调用将失败,并显示一条未指定的错误消息。Hogan在另一个答案中提到的代理异常代码在这种情况下不会有任何帮助,因为它们仅为RFC模块的命名异常生成,而不是基本的系统或编程错误。