知道什么课程实例化了一个课程

时间:2019-05-05 13:23:01

标签: java stack-trace

基本上,我正在创建一个API。我有多个端点,实现为控制器。如果端点被调用,它将实例化一个解析器类,并添加一些选项(如允许的参数等)。

但是现在:如果解析器失败,我希望它呈现一个不错的错误,其中包含指向实际失败的终结点文档的链接。

我使用b4j,它可以在Java之上运行,因此任何相关的Java代码都应该易于转换。在b4j中,任何端点都类似于一个类。

例如 我有一个“ getPOIByCity”端点。

如果用户调用此方法,则必须输入city参数。如果他/她省略了该参数,我希望用户收到一个包含以下内容的错误:

  

缺少1个必需参数:城市

     

请参阅文档:http://www.link.to/doc/getPOIByCity

我的第一个想法是进行某种堆栈跟踪,以了解哪个类实例化了parses类,但是我不相信那是这样做的方法。

C#的“来电者信息”属性更为优雅。

任何有关如何执行此操作的见解?

1 个答案:

答案 0 :(得分:1)

正如已经提到的另一个戴维,将异常委托给调用类(控制器)并从那里显示错误会更有意义。

但是只要给出问题的答案,就可以使用

StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
String parentClass = stackTraceElements[2].getClassName();
Class cl = Class.forName(parentClass);

实现您想要的。