Как правило, серверный метод верхнего уровня будет иметь throws Exception
.
Если вы оберните свой код "сделать это" в этом методе с помощью исключения try-catch, и вы можете записать его там как броситьЭто.
public Response myServerTopLevelMethod() throws Exception {
try {
myImplCode();
catch (Exception e) {
Log.error(e);
throw e;
}
}
Теперь у вас есть несколько вариантов того, что делать.Основные параметры:
- Вы можете просто повторно сгенерировать исключение (как указано выше)
- Вы можете играть хорошо и вернуть ответ «что-то плохое случилось» - как и многие веб-серверыdo
Вот пример варианта 2:
public Response myServerTopLevelMethod() throws Exception {
try {
myImplCode();
catch (Exception e) {
Log.error(e);
return new Response("Yikes! Something exploded... we'll look into it.");
}
}
Между прочим, «Log + throw» варианта 1 - это один из немногих случаев, когда вы когда-либо хотели это сделать;на методе верхнего уровня.В других случаях вы обычно должны или log или throw, а не оба.