6
我正在使用JAX-RS客戶端來使用REST API。我不想讓JAX-RS拋出一堆異常,所以我正在檢查自己的對象Response
。但有時候,我只關心某些狀態碼,我希望JAX-RS到回落到默認行爲並拋出一個實際的異常(將由AOP建議處理)。有沒有一個簡單的方法來做到這一點?JAX-RS:將響應轉換爲異常
public void delete(long id) {
Response response = client.delete(id);
Response.Status status = Response.Status.fromStatusCode(response.getStatus());
if (status == Response.Status.OK) {
return;
}
if (status == Response.Status.NOT_FOUND) {
throw new TeamNotFoundException();
}
if (status == Response.Status.CONFLICT) {
throw new TeamHasAssignedUsersException();
}
// if status was internal server error or something similar,
// throw whatever exception you would throw at first place
// magic.throwException(response)
}
如果您沒有從JAX-RS API獲取Response對象,它將拋出一堆異常,如BadRequestException,ClientErrorException等。但我不喜歡用異常驅動我的業務邏輯 – Xorty
您的意思是當你一個類似於'client.get(Customer.class)'的TypedEntity請求,那麼你會得到這些異常,否則當直接使用'Response'時 - 不是? –
是的就是這樣... – Xorty