У меня много шаблонного кода, который в основном следует этому шаблону:
function doSomething() {
try {
[implementation]
[implementation]
[implementation]
[implementation]
} catch (Exception e) {
MyEnv.getLogger().log(e);
} finally {
genericCleanUpMethod();
}
}
Я хотел бы создать свою собственную аннотацию, чтобы немного очистить свой код:
@TryCatchWithLoggingAndCleanUp
function doSomething() {
[implementation]
[implementation]
[implementation]
[implementation]
}
Подписи методов сильно варьируются (в зависимости от фактической реализации метода), но шаблонная часть try/catch/finally всегда одинакова.
Аннотация, которую я имею в виду, автоматически обернула бы содержимое аннотированного метода со всей try...catch...finally
шумихой.
Я долго искал прямой способ сделать это, но ничего не нашел. Не знаю, может быть, я просто не вижу леса за всеми аннотированными деревьями.
Любые указания на то, как я могу реализовать такую аннотацию, будут очень признательны.