背景
在构建关键字驱动测试框架的时候,明明已经在在方法try/catch并且抛出了自定义异常,但是测试报告中打印错误信息时却是InvocationTargetException。原因是:如果方法中直接抛出异常,通过反射进行调用时,会抛出InvocationTargetException异常
问题场景
- 自定义的某个关键字方法:(此例中属于KeyWordsActions类)
public static void verifyTitle(String text) throws Exception {
try {
/*自定义代码*/
}catch (Exception e){
throw new Exception("My Exception");
}
- 调用
public static void main(String args[]) throws Exception{
KeyWords keyWords = new KeyWords();
Method[] method = keyWords.getClass().getMethods();
for(int i=0;i<method.length;i++){
if("verifyTitle".equals(method[i].getName())){
try {
method[i].invoke(keyWords,value);//value是测试数据
Log.info("Pass");
}catch(Exception e){