Tôi muốn gọi một phương thức, sử dụng Java Reflection.Làm thế nào để gọi một phương thức mà ném một ngoại lệ bằng cách sử dụng Java Reflection?
Vấn đề là phương pháp này (mà tôi đã viết) ném một ngoại lệ (tôi đã tạo một myCustomException). Khi tôi thêm một mệnh đề try/catch, tôi không thể chạy dự án của mình, bởi vì Eclipse nói "mệnh đề catch là không thể truy cập".
Đây là khi tôi cố gắng gọi myMethod trong lớp MyClass:
270. myMethod.invoke(null, myParam); // NB : null because myMethod is static
Khi MyMethod không ném một MyCustomException, eveything là tốt. Nhưng khi nó ném một MyCustomException, tôi nhận được thông báo lỗi này:
Hãy nói rằng tôi cố gắng gọi fooMethod(), đó là trong lớp BarClass(), và:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.tests.MyClass.test5(270)
at com.tests.MyClass.main(297)
Caused by: com.tests.MyCustomException
at com.tests.barClass.fooMethod(BarClass.java:129)
... 6 more
Thậm chí có thể không? Cảm ơn bạn đã giúp đỡ.
Dường như các phương pháp gọi là ném một ngoại lệ. Quanh nó với thử-catch. – Razvan