基本上,我正在创建一个API。我有多个端点,作为控制器实现。如果一个端点被调用,它会实例化一个parserclass,添加一些选项(比如允许的参数等等)。
但是现在:如果解析器失败,我希望它呈现一个很好的错误,包含一个指向实际失败的端点的文档的链接。
我使用b4j,它在Java之上工作,所以任何相关的Java代码都应该很容易转换。在b4j中,任何端点都类似于类。
我有一个“getPOIByCity”端点。
如果用户调用此方法,则需要一个城市参数。如果他/她省略了该参数,我希望用户得到一个包含以下内容的错误:
缺少一个必需的参数:城市 请参阅文档:http://www.link.to/doc/getPOIByCity
我的第一个想法是进行某种类型的堆栈跟踪,以知道哪个类实例化了解析类,但我不敢相信这就是实现这个目标的方法。
C#具有稍微优雅的“呼叫者信息”属性。
对如何做到这一点有什么见解吗?
发布于 2019-05-05 13:57:07
正如另一个-dave已经提到的,将异常委托给调用类(控制器)并从那里显示错误将更有意义。
但是为了给你的问题一个答案,你可以用
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
String parentClass = stackTraceElements[2].getClassName();
Class cl = Class.forName(parentClass);去实现你想要的。
https://stackoverflow.com/questions/55992391
复制相似问题