package Reflects;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Method;
public class Demo {
public static void main(String[] args) throws IOException {
Calculator cl= new Calculator();
Class<? extends Calculator> aClass = cl.getClass();
System.out.println(aClass);
Method[] methods = aClass.getMethods();
int number = 0;
BufferedWriter bf = new BufferedWriter(new FileWriter("./debug.txt"));
for (Method m : methods){
//需要测试的方法
if (m.isAnnotationPresent(Check.class)){
try {
m.invoke(cl);
}catch (Exception e){
number++;
bf.write(m.getName()+"异常了");
bf.newLine();
bf.write("异常名称:"+e.getCause().getClass().getSimpleName());
bf.newLine();
bf.write("异常原因:"+e.getCause().getMessage());
bf.newLine();
bf.write("==============================");
bf.newLine();
}
}
}
bf.write("本此共"+number+"个错误");
bf.close();
}
}
package Reflects;
public class Calculator {
@Check
public void add(){
System.out.println("2+1="+(2+1));
}
@Check
public void sub(){
System.out.println("2-1="+(2-1));
}
@Check
public void take(){
System.out.println("2*0="+(2*0));
}
@Check
public void div(){
System.out.println("2/0="+(2/0));
}
@Check
public void test(){
System.out.println("2/0="+(2/0));
}
public void adapt(){
System.out.println("=====");
}
}