這裏是我的代碼:如何在JAVA的try catch框中捕捉特定的行異常?
public void serveFromSableV2() {
String merchantCustomerID = ObfuscatedId.construct(request.getMerchantCustomerID()).getPublicEntityId();
try {
List<MerchantMarketplaceBO> merchantMarketplaceBOList = new MerchantMarketplaceBO(merchantCustomerID, null).getAllMerchantMarketplacesBOsByMerchant();
Vector<Marketplace> resultVector = new Vector<>();
for (MerchantMarketplaceBO entity : merchantMarketplaceBOList) {
MarketplaceBO marketplaceBOObject = new MarketplaceBO(entity.getMarketplaceID());
marketplaceBOObject.loadFromSable();
if (marketplaceBOObject.isActive()) {
resultVector.add(marketplaceBOObject.getCodigoMarketplace());
}
}
if (resultVector.isEmpty()) {
throw new InvalidIDException();
}
this.response = new getMarketplacesByMerchantIncludingInactiveResponse();
response.setWrapperValue(resultVector);
} catch (EntityNotFoundException | SignatureMismatchException | InvalidIDException e) {
throw new InvalidIDException("merch=" + merchantCustomerID + "[" + request.getMerchantCustomerID() + "]"); //C++ stack throws InvalidIDException if marketplace is not found in datastore
}
}
現在對於任何例外,它拋出我不想外界抓住它一個特定的行(marketplaceBOObject.loadFromSable();
),我想通過單獨處理它再次繼續我的循環。我不想在這個try catch中使用另一個try catch。有人可以指導我嗎?
*爲什麼*你不想使用另一個try/catch?這是做這件事的明顯方式。 –
我對此不太確定,但是我的老大讓我不要使用它。還有其他的方式嗎? –
不是特別愉快,沒有。 (我可能會提取一個子方法來使整個事情變得更清潔,但是......)如果你的老人添加了一個要求,不要用最明顯的方法去做某件事,你應該問他們他們*希望你如何處理這個。 –