ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
~~~ package cn.itcast.day07.demo1.annotation; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.lang.reflect.Method; /** * @author: hcf * @qq: 46914685 * @email: 46914685@qq.com */ public class TestCheck { public static void main(String[] args) throws IOException { //1.创建计算器对象 Calculator calculator=new Calculator(); //2.获取字节码文件对象 Class cls = calculator.getClass(); //3.获取所有的方法 Method[] methods=cls.getMethods(); int number=0;//出现异常的次数 BufferedWriter bw = new BufferedWriter(new FileWriter("bug.txt")); for (Method method : methods) { //4.判断方法上是否有Check注解 if(method.isAnnotationPresent(Check.class)){ //5.有,执行 try { method.invoke(calculator); }catch (Exception e){ //6.捕获异常 //记录文件文件中 number++; bw.write(method.getName()+"方法出现异常了!"); bw.newLine(); bw.write("异常的名称:"+e.getCause().getClass().getSimpleName()); bw.newLine(); bw.write("异常的原因:"+e.getCause().getMessage()); bw.newLine(); bw.write("----------------------------"); bw.newLine(); } } } bw.write("本次测试一共出现"+number+"次异常"); bw.flush(); bw.close(); } } ~~~