It could be this: public static void main(String[] args) throws Exception { int deep = getStackTraceDepth(); System.out.println(deep-Thread.currentThread().getStackTrace().length); } public static int getStackTraceDepth() { return Thread.currentThread().getStackTrace().length; } } OR this: public static void main(String[] args) throws Exception { int deep = getStackTraceDepth(); System.out.println(deep); } public static int getStackTraceDepth() { return Thread.currentThread().getStackTrace().length; } } OR: public static void main(String[] args) throws Exception { int deep = getStackTraceDepth(); System.out.println(deep-Thread.currentThread().getStackTrace().length); } public static int getStackTraceDepth() { return Thread.currentThread().getStackTrace().length-Thread.currentThread().getStackTrace().length); } } Or else. I'm just not sure what I'm after for.