抛出异常并直接捕获它只是为了打印错误是否有意义?
if(...){ } else { try{ throw new Exception(); } catch (Exception e){ e.printStackTrace(); } }
无需抛出并捕捉,您可以简单地调用:
new Exception().printStackTrace();
甚至更简单:
Thread.dumpStack();
您还可以从当前线程获取堆栈跟踪作为数组:
StackTraceElement[] trace = Thread.currentThread().getStackTrace();
如果要执行更详细的操作,例如在运行时检查堆栈(例如,获取调用方法的名称)。