Было бы полезно добавить общий способ добавления информации в Throwable без создания нового Throwable?
Я часто вижу такой код:
try {
foo();
} catch(Exception e) {
throw new Exception(e.getMessage() + " extra info=" + blah, e);
}
Было бы лучше вместо этого добавить Throwable.setProperty (ключ String, значение String), чтобы приведенный выше код стал следующим?
try {
foo();
} catch(Exception e) {
e.setProperty("extra info", blah);
throw e;
}
Дополнительная информация может выводиться (по одному в строке) между сообщением и списком стеков.
Преимущества:
1. Не требует создания новых Throwables только для добавления дополнительной информации.
2. У следов стека не должно быть нескольких слоев следов причин
(и, следовательно, будет легче читать)
3. Уменьшите стоимость создания дополнительных следов стека.