13
ไม่มีคำสั่ง return ในคอมไพล์ที่ไม่ใช่ช่องว่าง
ฉันพบสถานการณ์ที่ไม่มีวิธีการที่เป็นโมฆะไม่มีคำสั่งการส่งคืนและรหัสยังคงรวบรวม ฉันรู้ว่างบหลังจากห่วงขณะที่ไม่สามารถเข้าถึงได้ (รหัสตาย) และจะไม่ถูกดำเนินการ แต่ทำไมคอมไพเลอร์ถึงไม่เตือนเรื่องการคืนบางอย่าง หรือทำไมภาษาถึงยอมให้เรามีวิธีที่ไม่เป็นโมฆะที่มีการวนซ้ำไม่สิ้นสุดและไม่ส่งคืนอะไรเลย? public int doNotReturnAnything() { while(true) { //do something } //no return statement } ถ้าฉันเพิ่มคำสั่ง break (แม้แต่เงื่อนไขที่มีเงื่อนไข) ใน while loop คอมไพเลอร์จะบ่นถึงข้อผิดพลาดที่น่าอับอาย: Method does not return a valueใน Eclipse และNot all code paths return a valueใน Visual Studio public int doNotReturnAnything() { while(true) { if(mustReturn) break; …