WebApplicationException и NotFoundException в мультисхеме
Итак, мой вопрос заключается в следующем:
В основном у меня есть метод с блоком try-catch, в котором я ловлю исключение WebApplicationException (javax.ws.rs.WebApplicationException), но мой метод выбрасывает NotFoundException (com.sun.jersey.api.NotFoundException) .
поэтому я хотел обрабатывать как:
try {
} catch (WebApplicationException e | NotFoundException e) {
}
Однако я получаю следующую ошибку во время компиляции:
Исключение NotFoundException уже перехвачено альтернативным WebApplicationException
Но почему это? NotFoundException должен происходить из совершенно другого пакета (Джерси), не так ли?
Кроме того - он работает нормально, если я помещу их в отдельные блоки catch().
Пожалуйста помоги.
2 ответа
Вы можете попробовать дочернее исключение в первую очередь.
try {
} catch (NotFoundException e) {
} catch (WebApplicationException e) {
}
Но почему это? Предполагается, что NotFoundException происходит из совершенно другого пакета (трикотаж)
Если вы пройдете через jersey's NotFoundException
исходный код, чем вы нашли, NotFoundException extends WebApplicationException
, Вот, NotFoundException
наследовать javax.ws.rs.WebApplicationException
учебный класс. Так, WebApplicationException
является родительским классом com.sun.jersey.api.NotFoundException
Вот почему вы получаете ошибку.
package com.sun.jersey.api;
import java.net.URI;
import javax.ws.rs.WebApplicationException;
/**
* A HTTP 404 (Not Found) exception.
*
* @author Paul.Sandoz@Sun.Com
*/
public class NotFoundException extends WebApplicationException
Ваш синтакс не прав. Смотрите Java Doc. Сделайте это вместо этого:
try {
} catch (WebApplicationException | NotFoundException e) {
}