Код: Выделить всё
import org.slf4j.MDC;
MDC.put(ID1, id1);
MDC.put(ID2, id2);
MDC.put(ID3, id3);
try {
return joinPoint.proceed();
} finally {
MDC.remove(ID1);
MDC.remove(ID2);
MDC.remove(ID3);
}
- Предполагая, что существует приведенный выше код,
Исключения также могут возникать для удаления, put() - Если в процессе удаления идентификатора 1 возникает исключение, вы не сможете удалить ненужные идентификаторы id2, id3. Чтобы предотвратить эту проблему, нужно ли мне выполнять дополнительный процесс получения и обработки исключения для этой части приведенного выше кода? Как и прилагаемый код
Приведенный ниже код обрабатывается только для ID1, но вам понадобится оператор try-catch каждый раз, когда вы его добавляете.
Код: Выделить всё
MDC.put(ID1, id1);
MDC.put(ID2, id2);
MDC.put(ID3, id3);
try {
return joinPoint.proceed();
} finally {
try{
MDC.remove(ID1);
} finally {
MDC.remove(ID2);
MDC.remove(ID3);
}
}
- There's no compiler exception
Источник: https://stackoverflow.com/questions/781 ... or-mdc-put