私は起こって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
でしょうか? 助けてくれてありがとう。