java 注解练习2

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("=====");
    }
}

 

posted @ 2022-05-02 18:43  phpwyl  阅读(31)  评论(0编辑  收藏  举报