在同一类java中的多个方法中try catch的常用代码

时间:2017-08-09 13:19:22

标签: java selenium-webdriver try-catch

我有超过100种方法的java类,在每种方法中我都要设置try catch代码。在每个尝试代码中,我有不同的逻辑。如何在Java中开发通用代码?

我的示例代码:

public void method1(){

    try {
        int a = 2 +3 ;
    } catch (Exception e) {
        e.printStackTrace();
    }

}

public void method2(){

    try {
        int a = 4 +3 ;
    } catch (Exception e) {
        e.printStackTrace();
    }

}

public void method3(){

    try {
        int a = 2 +6 ;
    } catch (Exception e) {
        e.printStackTrace();
    }

}


public void method4(){

    try {
        int a = 2 +9 ;
    } catch (Exception e) {
        e.printStackTrace();
    }

}

有超过100种方法..并且在每种方法中使用try catch是忙乱的。

请告知我能做些什么。

===========================

我的消费者代码::

public class ConsumerCheckExceptionWrapper {

@SuppressWarnings("unchecked")
static <T extends Throwable> T hiddenThrowClause(Throwable t) throws T {
    throw (T)t;
}


public static <T extends Throwable> Consumer<T> tryCatchBlock(ConsumerCheckException<T> consumr) throws T {
    System.out.println("tryCatchBlock method");
    return t -> {
        try {
            consumr.accept(t);
        } catch (Throwable exc) {
            ConsumerCheckExceptionWrapper.<RuntimeException> hiddenThrowClause(exc);
            System.out.println("exc :: " + exc.getStackTrace());
        }
    };
}

}

 @FunctionalInterface 
public interface ConsumerCheckException<T>{
     void accept(T elem) throws Exception; }

// -----------------

//在我的方法中调用:

ConsumerCheckExceptionWrapper.tryCatchBlock(err ->
mymethod(val1,val2));

1 个答案:

答案 0 :(得分:1)

您可以在所有方法中添加throws声明,并捕获调用方法的异常。这将使事情变得更简单。像这样的东西

public class HelloWorld{

 public static void main(String []args){
    try{
        //call methods here
    }catch(Exception e){
        e.printStackTrace();
    }
 }


 public void method1() throws Exception{

    int a = 4+3;


}

public void method2() throws Exception{

    int a = 4 +3 ;


}

public void method3() throws Exception{

    int a = 2 +6 ;

}


public void method4() throws Exception{

    int a = 2 +9 ;


}

}