Вы намеревались сделать это для своего кода?
try {
apiCall();
} catch (Exception e) {
if(!SWALLOW_EXCEPTION) {
throw e;
} else {
e.printStackTrace();
}
}
Если это так, то если это единственное место, где вызывается этот API, мне кажется, это нормально, если вы понимаете, что вам нужно будет перекомпилировать изменения, чтобы изменения вступили в силу. Вы можете использовать фреймворк для ведения журналов, чтобы сделать это без перекомпиляции, например так:
if (logger.isInfoEnabled()) {
throw e;
} else {
logger.error(e.getMessage(), e);
}
Но я думаю, что большинство людей, смотрящих на такой кусок кода, были бы очень озадачены. Если вы хотите избежать перекомпиляции, просто используйте системное свойство:
if (Boolean.getBoolean("development")) {
throw e;
} else {
e.printStackTrace();//you should really use a logging framework anyway and not this.
}