我想引发一个本地类型的异常,并在构造函数a * text中传递它。
这个*文本是我希望通过调用get_longtext方法返回的,稍后,当我捕获异常时。
当然我可以在我的类中添加一个属性,然后重新定义该方法。在我看来,应该有一个更简单的方法(就像在类似java的语言中,你只是“拥有”)。
继承的构造函数中存在用于异常的TEXTID参数。然而,这指向定义为类属性的“文本”......但这适用于全局类。
那么有什么办法让我以优雅的方式使用现有的构造函数? 或者我必须手工完成这一切吗?
答案 0 :(得分:1)
如果您不想使用全局类(如建议的那样),您可以尝试在本地类中实现接口IF_T100_MESSAGE
。首先通过SE91
在任何消息类中维护错误消息,然后在类型为SCX_T100KEY
的本地异常类中定义文本ID。实现异常类方法以在消息文本中使用占位符的其他属性(如有必要)。
查看IF_T100_MESSAGE
和CL_MESSAGE_HELPER
了解详情。要获取示例代码,请创建一个全局异常类并添加接口IF_T100_MESSAGE
并检查方法的实现方式。
答案 1 :(得分:1)
可以定义您自己的本地异常类,它将具有IF_T100_MESSAGE
接口的所有好处。
如果您对示例代码感兴趣,请参阅http://oprsteny.com/?p=1346
我的博客文章(代码很长)