在下面的代碼中,如果在字符串列表中找不到元素,則會拋出異常。拋出異常以指示找不到元素
import java.util.ArrayList;
import java.util.List;
public class TestException {
private static List<String> strList = new ArrayList<String>();
static {
strList.add("1");
strList.add("2");
}
public static void main(String argsp[]) {
try {
String res = new TestException().findId("1");
System.out.println(res);
} catch (Exception e) {
e.printStackTrace();
}
try {
String res = new TestException().findId("11");
System.out.println(res);
} catch (Exception e) {
e.printStackTrace();
}
}
private String findId(String id) throws Exception {
for(String str : strList){
if(id.equalsIgnoreCase(str)){
return str;
}
}
throw new Exception("Exception Thrown - element not found");
}
}
運行時輸出爲:
1
java.lang.Exception: Exception Thrown - element not found
at com.fmr.fc.portlet.actionabledashboard.throttling.TestException.findId(TestException.java:40)
at com.fmr.fc.portlet.actionabledashboard.throttling.TestException.main(TestException.java:24)
爲了保持代碼量低的問問題,我拋出異常,但我會拋出一個自定義異常。 我拋出一個異常的原因是自定義異常被進一步調用堆棧來指示錯誤。
但是,這是不好的做法拋出這種異常 - findId是拋出一個異常,如果沒有找到一個ID?
該物品是否應該在列表中(在這種情況下,如果不是這種情況,則爲錯誤)或該物品不在列表中是否正常? – immibis 2014-11-06 10:56:58
@immibis該項目在列表中的正常狀態 – 2014-11-06 11:00:26
,但是該項目不在列表中也是正常的嗎? – immibis 2014-11-06 11:00:51