โซลูชัน True-way ใน Java: แยกวิเคราะห์ตัวเลข 2 ตัวจาก 2 สตริงแล้วส่งคืนผลรวม
ค่อนข้างเป็นคำถามโง่ ๆ ให้รหัส: public static int sum(String a, String b) /* throws? WHAT? */ { int x = Integer.parseInt(a); // throws NumberFormatException int y = Integer.parseInt(b); // throws NumberFormatException return x + y; } คุณช่วยบอกได้ไหมว่าเป็น Java ที่ดีหรือไม่? สิ่งที่ฉันกำลังพูดถึงคือNumberFormatExceptionเป็นข้อยกเว้นที่ไม่ได้ตรวจสอบ คุณไม่จำเป็นต้องระบุว่าเป็นส่วนหนึ่งของsum()ลายเซ็น นอกจากนี้เท่าที่ผมเข้าใจความคิดของข้อยกเว้นไม่ถูกตรวจสอบเป็นเพียงสัญญาณว่าการดำเนินการของโปรแกรมไม่ถูกต้องและมากยิ่งขึ้นจับข้อยกเว้นไม่ถูกตรวจสอบเป็นความคิดที่ไม่ดีเพราะมันก็เหมือนกับการแก้ไขโปรแกรมที่ไม่ดีที่รันไทม์ ใครช่วยชี้แจงได้ไหมว่า: ฉันควรระบุNumberFormatExceptionเป็นส่วนหนึ่งของลายเซ็นของเมธอด ฉันควรกำหนดข้อยกเว้นการตรวจสอบของตัวเอง ( BadDataException) จับภายในวิธีการและอีกครั้งโยนมันเป็นNumberFormatExceptionBadDataException ฉันควรกำหนดข้อยกเว้นการตรวจสอบของฉันเอง ( BadDataException) ตรวจสอบความถูกต้องของสตริงทั้งสองด้วยวิธีใดวิธีหนึ่งเช่นนิพจน์ทั่วไปและโยนของฉันBadDataExceptionหากไม่ตรงกัน …