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) {


}
Другие вопросы по тегам