1

我想引发一个本地类型的异常,并在构造函数中传递一个 *text。

这个 *text 是我想通过调用 get_longtext 方法返回的,稍后,当我捕获异常时。

当然,我可以为我的类添加一个属性,然后重新定义方法。然而,在我看来,应该有一种更简单的方法(就像在类似 java 的语言中,你只是“拥有”它)。

异常的继承构造函数中有 TEXTID 参数。然而,这指向定义为类属性的“文本”......但这是针对全局类的。

那么有什么方法可以让我以一种优雅的方式利用已经存在的构造函数吗?还是我必须手动完成所有操作?

4

2 回答 2

1

如果您不想使用全局类(如推荐的那样),您可以尝试IF_T100_MESSAGE在本地类中实现接口。首先通过 维护任何消息类中的错误消息SE91,然后在类型的本地异常类中定义文本 ID SCX_T100KEY。实现异常类方法以在消息文本中使用占位符的附加属性(如有必要)。

检查IF_T100_MESSAGECL_MESSAGE_HELPER了解详情。要获取示例代码,请创建一个全局异常类并添加接口IF_T100_MESSAGE并检查方法是如何实现的。

于 2012-09-03T08:26:04.823 回答
1

可以定义自己的本地异常类,该类将具有IF_T100_MESSAGE接口的所有优点。

如果您对示例代码感兴趣,请参阅我的博客文章(代码很长,放在这里)http://oprsteny.com/?p=1346

于 2015-03-13T09:44:06.003 回答