โจทย์คือ
ให้เขียนโค้ดของเมท็อด setA(int a) ที่ไม่คืนค่าใด ๆ โดยถ้าพารามิเตอร์เข้า a เป็นค่าตั้งแต่ 0 ถึง 10 จะกำหนดค่าให้กับตัวแปรวัตถุ a ถ้าไม่เช่นนั้นจะโยนความผิดพลาด Exception ที่มีข้อความ "Error: bad value"
public class test_ass4 {
int a;
public void setA(int a) {
try {
if ((a >= 0) && (a <= 10)) {
this.a = a;
System.out.println(a+" Done");
}
} catch (Exception b) {
System.out.println("Error");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
test_ass4 qq = new test_ass4();
qq.setA(15);
}
}
เวลารันผลลัพธ์ ถ้าตั้งค่าในช่วง0-10 มันรันผ่านครับ ขึ้นdoneตามที่กำหนด
แต่ถ้ามากกว่านั้น มันผ่านจริง แต่ไม่มีอะไรเกิดขึ้น แทนที่จะต้องขึ้นคำว่า Error : bad value
ช่วยดูโค้ด java ให้หน่อยครับ ทำไมมันไม่เข้าเงื่อนไข catch
ให้เขียนโค้ดของเมท็อด setA(int a) ที่ไม่คืนค่าใด ๆ โดยถ้าพารามิเตอร์เข้า a เป็นค่าตั้งแต่ 0 ถึง 10 จะกำหนดค่าให้กับตัวแปรวัตถุ a ถ้าไม่เช่นนั้นจะโยนความผิดพลาด Exception ที่มีข้อความ "Error: bad value"
public class test_ass4 {
int a;
public void setA(int a) {
try {
if ((a >= 0) && (a <= 10)) {
this.a = a;
System.out.println(a+" Done");
}
} catch (Exception b) {
System.out.println("Error");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
test_ass4 qq = new test_ass4();
qq.setA(15);
}
}
เวลารันผลลัพธ์ ถ้าตั้งค่าในช่วง0-10 มันรันผ่านครับ ขึ้นdoneตามที่กำหนด
แต่ถ้ามากกว่านั้น มันผ่านจริง แต่ไม่มีอะไรเกิดขึ้น แทนที่จะต้องขึ้นคำว่า Error : bad value