如何知道调用的java程序的父类?

时间:2011-08-15 05:23:32

标签: java parent-child

我正在处理分布式应用程序并在类的主方法中获取异常。我怎么知道哪个java程序调用了它?我尝试调试分布式应用程序,但无法弄清楚。

3 个答案:

答案 0 :(得分:2)

  

假设Java Class A调用Java Class B(比如“java classB”)。我在B类中获得异常。我如何知道哪个类调用了“java classB”?

您无法知道从ClassB调用java进程的内容。 Exception只会像它自己的调用栈一样深入。如果其他东西启动了这个过程,即使它是java本身,也无法从ClassB中知道这一点。

最好使用ClassA中的有用日志记录(包括调试/信息消息和异常堆栈跟踪)。您必须确保ClassB在失败时正确退出(使用0以外的代码退出),然后ClassA可以在它生成的过程中看到此失败。

答案 1 :(得分:0)

尝试获取当前的堆栈跟踪,看看谁调用了main方法。

StackTraceElement[] elements = Thread.currentThread().getStackTrace();

答案 2 :(得分:0)

这是“异常”的Javadoc:

http://download.oracle.com/javase/6/docs/api/java/lang/Exception.html

除了调用“getMessage()”之外,您还可以使用异常对象执行多项操作。例如,您可以“printStackTrace()”(显示它是如何被调用的,以及它被抛出的位置)。