Вот пример использования: я пишу классы и функции, предназначенные для выполнения определенной функции / задачи (например, createBuilding, destroyBuilding и т. Д.).Конструкция, которой я придерживаюсь, заключается в том, что функция не обрабатывает и не обрабатывает ошибки.Вызывающая сторона несет ответственность за принятие соответствующих мер в случае возникновения ошибки / исключения.Я могу сделать это двумя способами:
public void caller {
try {
A.createBuilding();
catch (Exception e) {
process exception
}
}
Первый подход:
public class A {
public String createBuilding throws Exception {
try {
blah blah blah
catch (Exception e) {
throw new Exception(e);
}
}
Второй подход:
public class A {
public String createBuilding {
StringBuffer sb = new StringBuffer();
try {
blah blah blah
catch (Exception e) {
sb.add(e.toString());
}
return sb.toString();
}
The user in the second case does the following:
public void caller throws Exception {
String st = A.createBuilding();
if (st.contains("Exception"))
do something;
}
Предположим, что вызываемая функция всегда возвращает строку.
Есть какие-нибудь комментарии о том, какой подход лучше?Какие-нибудь подводные камни / проблемы, которые я пропускаю?
Цените всю помощь !!!