簡體   English   中英

Java中Reflected方法的異常stacktrace

[英]Exception stacktrace of Reflected method in Java

我通過反射調用方法,該方法引發異常。

但是當我通過

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

我沒有整個堆棧跟蹤到反射的方法。 它僅在實現反射的我的方法之前獲取堆棧跟蹤。

反映的類完全在另一個項目中。

編輯:添加代碼段

項目A

Class ReflectionImpl {

   public void callMethodsviaReflection{
     try{
              // Reflection code to call the method

         }catch(InvocationTargetException iTE){

           StringBuilder errorLogBuilder = new StringBuilder();
            errorLogBuilder.append(ex.toString());
            errorLogBuilder.append("\n");

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

             for (int i=0;i<elements.length;i++) {

                 errorLogBuilder.append((elements[i].toString()));
                 errorLogBuilder.append("\n");
             }

            System.out.println(errorLogBuilder.toString());
        }
    }
}

項目B- > 在Eclipse中引用項目A

Class ReflectedClass{

 List<String> nameList = null;

 public void reflectedMethod(){

     nameList.add("Hello");
    }      
}

在您致電的特定時間點:

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

您的“反射調用”已經完成,這反映在您從調用返回的調用堆棧中。 聽起來更像您想要的:

iTE.getCause().getStackTrace();

這將使您的調用堆棧達到並包括實際引發異常的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM