为什么这段代码不会抛出异常?尝试了很多东西,但是当我用这样的JUnit类测试它时,它不会抛出异常:
Vehicle e = new Vehicle('C', 'G', "A1234");
// Constructor
public Vehicle(char kType, char dType, String regNr) {
String temp0 = regNr.substring(0, 2);
String temp = regNr.substring(2);
boolean finish = false;
if ("" + kType == "C") {
for (char c : temp0.toCharArray()) {
if (Character.isDigit(c)) {
throw new IllegalArgumentException("3");
}
}
if (temp.length() == 5) {
finish = true;
} else {
finish = false;
throw new IllegalArgumentException("4");
}
try {
Integer.parseInt(temp);
} catch (NumberFormatException nfe) {
finish = false;
throw new IllegalArgumentException("5");
}
}
}
答案 0 :(得分:1)
不会。
if(""+kType=="C"){
该代码总是会给你错误。
您(几乎)从不使用==比较字符串;你必须使用equals()
方法。当然,当你真的输入if块时,会有各种条件导致抛出那些IllegalArgumentExceptions。