0

私は起こってcountいる数を調べており、exceptionsそれらも記録してexceptionsいます。そこで、addExceptionすべての例外をカウントする 1 つのメソッドを作成しました。

addExceptionメソッドは 2 つのパラメーターを受け取ります。one is the Stringその他は、boolean flag例外のためにプログラムを終了するかどうかを意味します。つまり、そのフラグが true の場合、例外が発生するたびにプログラムを終了する必要があります。

したがって、下のcatchブロックを見るaddExceptionと、例外をカウントするためのメソッド呼び出しがあり、そのメソッド呼び出しの下にも例外が記録されています。

catch (ClassNotFoundException e) {
    addException(e.getCause() != null ? e.getCause().toString() : e.toString(), Read.flagTerminate);
    LOG.error("Threw a ClassNotFoundException in " + getClass().getSimpleName(), e);
} catch (SQLException e) {
    addException(e.getCause() != null ? e.getCause().toString() : e.toString(), Read.flagTerminate);
    //DAMN! I'm not....
    LOG.error("Threw a SQLException while making connection to database in " + getClass().getSimpleName(), e);
}


/**
 * A simple method that will add the count of exceptions and name of
 * exception to a map
 * 
 * @param cause
 * @param flagTerminate 
 */
private static void addException(String cause, boolean flagTerminate) {
    AtomicInteger count = exceptionMap.get(cause);
    if (count == null) {
        count = new AtomicInteger();
        AtomicInteger curCount = exceptionMap.putIfAbsent(cause, count);
        if (curCount != null) {
            count = curCount;
        }
    }
    count.incrementAndGet();

    if(flagTerminate) {
        System.exit(1);
    }
}

問題文:-

今、私が探しているのは-

同じことを行うよりクリーンな方法はありますか?つまり、メソッド内の例外を数えてから、catch ブロック内の次の行に例外を出力しています。

同じaddException方法で両方を行うことは可能ですか?また、フラグが true でプログラムを終了する場合は、適切なログを記録してプログラムを終了します。

これを行うために書き直す最良の方法は何addException methodでしょうか? 助けてくれてありがとう。

4

1 に答える 1

0
于 2013-03-01T17:10:04.550 に答える