ข้อผิดพลาดรันไทม์ใน Windows มีอายุเท่ากับระบบปฏิบัติการ เป็นข้อความแสดงข้อผิดพลาดที่พบบ่อยในการดูว่าแอปขัดข้อง แต่ข้อผิดพลาดรันไทม์คืออะไร และคุณจะทำอย่างไรกับข้อผิดพลาดดังกล่าว
การพัฒนาซอฟต์แวร์มีความซับซ้อน และแอปพลิเคชันสมัยใหม่ต้องอาศัยไลบรารีที่ซับซ้อนและข้อมูลสนับสนุนเพื่อให้ทำงานตามที่คาดหวัง คู่มือนี้จะช่วยให้คุณเข้าใจสาเหตุที่เกิดข้อผิดพลาดรันไทม์และวิธีย่อให้เล็กสุด
ข้อผิดพลาดรันไทม์คืออะไร
คำว่า “ข้อผิดพลาดรันไทม์” หมายถึงข้อผิดพลาดของแอปพลิเคชันใดๆ เมื่อมีการเรียกใช้โปรแกรม มันเกิดขึ้นกับโปรแกรมที่กำลังรันอยู่ ซึ่งตรงกันข้ามกับข้อผิดพลาดที่เกิดขึ้นเมื่อโปรแกรมกำลังคอมไพล์ การคอมไพล์เป็นกระบวนการนำโค้ดโปรแกรม (“ซอร์ส”) มาแปลงเป็นโค้ดไบนารี่ที่ระบบปฏิบัติการตื่นเต้นได้ หากส่วนใดส่วนหนึ่งของซอร์สโค้ดไม่ถูกต้อง คอมไพเลอร์จะหยุดทำงานและให้ข้อความแสดงข้อผิดพลาด
ข้อผิดพลาดรันไทม์เกิดขึ้นเมื่อไฟล์ปฏิบัติการที่คอมไพล์พบสถานการณ์ที่ไม่รู้ว่าต้องทำอย่างไรต่อไป หรือมีบางอย่างรบกวนการทำงานปกติ ณ จุดนี้ มันจะโยนผ้าเช็ดตัวและทำให้เกิดข้อผิดพลาดรันไทม์
ข้อผิดพลาดรันไทม์ประเภทต่างๆ
เนื่องจากมีการกำหนดข้อผิดพลาดรันไทม์ไว้กว้างๆ การแก้ปัญหาจึงอาจเป็นเรื่องยุ่งยาก ช่วยให้เข้าใจว่าข้อผิดพลาดประเภทใดบ้างที่คุณอาจพบ ข้อผิดพลาดห้าประเภทด้านล่างไม่ได้ครอบคลุมทั้งหมด แต่เป็นสาเหตุที่เป็นไปได้มากที่สุด
ข้อผิดพลาดทางตรรกะ
ข้อผิดพลาดทางตรรกะเกิดขึ้นเมื่อคอมพิวเตอร์พบบางสิ่งที่ “ไม่ได้คำนวณ ” อย่างแท้จริง เป็นเอาต์พุตที่สร้างโดยโค้ดของโปรแกรมซึ่งให้ผลลัพธ์ที่ไม่คาดคิด ซึ่งบางครั้งก็เป็นไปไม่ได้ เนื่องจากตรรกะของโค้ดไม่ได้ติดตามหรือโปรแกรมเมอร์ไม่ได้คาดการณ์ชุดเงื่อนไขหรืออินพุตที่เฉพาะเจาะจง
หน่วยความจำรั่ว
หน่วยความจำรั่วเกิดขึ้นเมื่อโปรแกรมไม่คืนหน่วยความจำตามที่ขอ หลังจากที่ไม่ต้องการแล้ว หน่วยความจำรั่วเมื่อเวลาผ่านไปทำให้ทรัพยากรสำหรับโปรแกรมอื่นน้อยลงเรื่อยๆ ส่งผลให้ประสิทธิภาพลดลงและในที่สุดก็เกิดข้อผิดพลาดรันไทม์ นี่เป็นสิ่งที่น่าสนใจเพราะซอฟต์แวร์ที่รายงานข้อผิดพลาดรันไทม์มักจะไม่ใช่ซอฟต์แวร์ที่มีหน่วยความจำรั่ว มันเป็นเพียงเหยื่อของการรั่วไหล.
หารด้วยศูนย์
เป็นไปไม่ได้ที่จะหารด้วยศูนย์ ดังนั้นเมื่อคอมพิวเตอร์ของคุณพยายามจะหาร มันจะระเบิดเข้าไปในหลุมดำ ผมล้อเล่น! จะทำให้โปรแกรมเสียหายโดยมีข้อผิดพลาดรันไทม์ตามบรรทัด "ไม่สามารถหารด้วยศูนย์"
วัตถุที่ไม่ได้กำหนด
ข้อผิดพลาดนี้มักจะเกี่ยวข้องกับ Java และ จาวาสคริปต์ โดยที่ตัวแปรที่ไม่ได้กำหนดค่าหรือยังไม่ได้ประกาศ กล่าวอีกนัยหนึ่ง ไม่มีข้อมูลในตัวแปร หรือโค้ดอ้างอิงถึงตัวแปรที่ไม่มีอยู่ โดยพื้นฐานแล้ว โปรแกรมเมอร์เกิดข้อผิดพลาดบางประการ
ข้อผิดพลาด IO
ข้อผิดพลาด IO หรืออินพุต/เอาท์พุตเกิดขึ้นเมื่อโปรแกรมพยายามอ่านหรือเขียนข้อมูลจากอุปกรณ์จัดเก็บข้อมูลแต่ล้มเหลว อาจมีสาเหตุหลายประการ ตั้งแต่ไดรฟ์ที่ไม่ได้เชื่อมต่อไปจนถึงฮาร์ดไดรฟ์หรือฮาร์ดแวร์ USB ที่ผิดพลาด แผ่นออปติคอลที่มีรอยขีดข่วนเป็นอีกสาเหตุหนึ่งของข้อผิดพลาด IO
วิธีการแก้ไขข้อผิดพลาดรันไทม์
คุณพบข้อผิดพลาดรันไทม์ และทำให้คุณหงุดหงิดเพราะคุณกำลังพยายามทำสิ่งต่างๆ ให้สำเร็จ แม้ว่าเราได้กล่าวไปแล้วข้างต้นว่าข้อผิดพลาดรันไทม์มีหลายประเภท และข้อผิดพลาดเฉพาะเจาะจงอาจบอกให้คุณทราบว่าข้อผิดพลาดประเภทใด มีการแก้ไขทั่วไปบางประการที่อาจได้ผลโดยไม่คำนึงถึงรายละเอียด
รีบูตคอมพิวเตอร์ของคุณ
การรีบูตคอมพิวเตอร์อาจแก้ปัญหาหน่วยความจำรั่วหรือล้างแคชข้อมูลชั่วคราวหรือข้อมูลการทำงานอื่นๆ ที่อาจทำให้โปรแกรมหยุดทำงาน หากปัญหาหายไปหลังจากการรีบูต ไม่ได้ช่วยแก้ไขสาเหตุ แต่สำหรับปัญหาที่เกิดขึ้นเป็นครั้งคราว การรีสตาร์ทเป็นวิธีแก้ปัญหาที่รวดเร็วที่ควรลอง
อัปเดตแอปพลิเคชัน
บ่อยครั้งที่ข้อผิดพลาดรันไทม์ในซอฟต์แวร์เป็นผลมาจากจุดบกพร่องในตัวซอฟต์แวร์เอง เมื่อนักพัฒนาซอฟต์แวร์ทราบข้อบกพร่องเหล่านี้แล้ว พวกเขามักจะแก้ไขปัญหาและเผยแพร่การอัปเดตสำหรับแอปพลิเคชัน ดังนั้นสิ่งแรกที่คุณควรทำคือตรวจสอบว่ามีการอัปเดตสำหรับซอฟต์แวร์ของคุณหรือไม่
บางทีที่สำคัญกว่านั้นคือ เมื่อคุณพบข้อผิดพลาดรันไทม์ของ Windows คุณควรรายงานข้อผิดพลาดดังกล่าวให้นักพัฒนาทราบ บางครั้งอาจมีปุ่มการรายงานข้างข้อความแสดงข้อผิดพลาด ในบางครั้ง คุณอาจต้องจับภาพหน้าจอหรือจดรหัสข้อผิดพลาด จากนั้นจึงติดต่อผ่านทางอีเมลหรือโซเชียลมีเดีย การรายงานจุดบกพร่องใหม่สามารถเร่งการแก้ไขได้.
อัปเดต Windows
ข้อผิดพลาดรันไทม์อาจเกิดจากจุดบกพร่องหรือปัญหาอื่นๆ ใน Microsoft Windows เอง ซึ่งมักจะได้รับการแก้ไขในการอัปเดต Windows โดยปกติแล้วปัญหาเล็กๆ น้อยๆ จะได้รับการแก้ไขใน "โปรแกรมแก้ไขด่วน" ซึ่งเป็นการอัปเดตเล็กๆ น้อยๆ ที่แก้ไขปัญหาเร่งด่วนเฉพาะเจาะจง
หรืออีกทางหนึ่ง หากโปรแกรมเริ่มแสดงข้อผิดพลาดรันไทม์ไม่นานหลังจากการอัปเดต Windows คุณอาจต้องการ ลบการอัปเดตครั้งล่าสุด จนกว่านักพัฒนาจะอัปเดตซอฟต์แวร์ของตน
อัปเดตไดรเวอร์ที่ล้าสมัยของคุณ
ไดรเวอร์คือซอฟต์แวร์ที่ให้ระบบปฏิบัติการควบคุมฮาร์ดแวร์ของคุณ เช่น การ์ดแสดงผล (หรือที่เรียกว่าการ์ดกราฟิกของคุณ) ซอฟต์แวร์ใหม่หรือซอฟต์แวร์ที่อัปเดตใหม่อาจต้องใช้คุณลักษณะที่มีอยู่ในไดรเวอร์เวอร์ชันล่าสุดเท่านั้น ดังนั้นเมื่อคุณ อัพเดตไดรเวอร์ เป็นส่วนประกอบของคอมพิวเตอร์ คุณอาจแก้ไขข้อผิดพลาดรันไทม์ที่เกี่ยวข้องกับฮาร์ดแวร์ได้
ติดตั้งใหม่หรือซ่อมแซมแอปพลิเคชัน
ข้อผิดพลาดรันไทม์อาจเป็นผลมาจากไฟล์แอปพลิเคชันหรือข้อมูลเสียหาย ดังนั้นเมื่อโปรแกรมปฏิบัติการพยายามเข้าถึงข้อมูลที่จำเป็นในการทำงาน ก็จะเกิดข้อผิดพลาดเนื่องจากข้อมูลนั้นผิดหรือขาดหายไป
ด้วยการถอนการติดตั้งแอปพลิเคชันและติดตั้งใหม่ คุณสามารถเขียนทับข้อมูลที่เสียหายด้วยสำเนาใหม่ได้ คุณอาจไม่ต้องถอนการติดตั้งแอปพลิเคชันก่อน แอปจำนวนมากจะเสนอตัวเลือก "ซ่อมแซม" หรือ "ยืนยัน" เมื่อคุณเรียกใช้โปรแกรมติดตั้งอีกครั้งหรือลอง ถอนการติดตั้ง จากส่วนโปรแกรมและคุณลักษณะของแผงควบคุม
ปิดแอปอื่นๆ ทั้งหมด
ข้อผิดพลาดรันไทม์ที่เกิดจากหน่วยความจำรั่วหรือเนื่องจากแอปใดแอปหนึ่งต้องการหน่วยความจำมากกว่าที่มีอยู่ สามารถบรรเทาลงได้ด้วยการปิดโปรแกรมที่ไม่จำเป็นใดๆ ที่เปิดอยู่ คุณอาจต้องการปรับขนาดไฟล์สลับของคุณ เพื่อสร้างพื้นที่ว่างเพิ่มขึ้นอีกเล็กน้อยสำหรับแอปที่ไม่พอดีกับ RAM
หากคุณแน่ใจว่าข้อผิดพลาดรันไทม์มีสาเหตุจากความจุของหน่วยความจำ ไม่ใช่หน่วยความจำรั่ว คุณสามารถพิจารณาอัปเกรดจำนวน RAM ในคอมพิวเตอร์ของคุณเพื่อรองรับปริมาณงานที่หนักกว่านั้นได้
เรียกใช้ Windows ในเซฟโหมดหรือทำการคลีนบูต
หากคุณสงสัยว่าข้อผิดพลาดรันไทม์ที่คุณพบนั้นเป็นผลมาจากไดรเวอร์หรือแอปพลิเคชันซอฟต์แวร์อื่นๆ ในเบื้องหลัง คุณสามารถใช้ Safe Mode หรือคลีนบูตเพื่อยืนยันได้.
Safe Mode เป็นโหมดการบูตพิเศษใน Windows ที่โหลดไดรเวอร์และบริการของ Windows เพียงเล็กน้อยเท่านั้น หากปัญหาหายไปใน Safe Mode คุณสามารถมั่นใจได้ว่าปัญหานั้นเกี่ยวข้องกับไดรเวอร์ (อัปเดต) หรือบริการของ Windows โปรดดูคำแนะนำของเราใน วิธีเริ่มต้นระบบในเซฟโหมด เพื่อดูว่าสามารถช่วยได้หรือไม่ หากเป็นเช่นนั้น คุณอาจต้องการทดลองปิดการใช้งานบริการใน แท็บบริการ MSConfig
คลีนบูตแทบจะตรงกันข้ามกับ Safe Mode แทนที่จะโหลดระบบปฏิบัติการขั้นต่ำ Windows จะปิดใช้งานซอฟต์แวร์เริ่มต้นระบบของบุคคลที่สามทั้งหมด หากคลีนบูตแก้ไขข้อผิดพลาดรันไทม์ อาจเป็นไปได้ว่าแอปของบุคคลที่สามจำเป็นต้องปิดใช้ อัปเดต หรือเปลี่ยนใหม่ โปรดดูคำแนะนำของเราใน วิธีดำเนินการคลีนบูต
อัปเดตคอมโพเนนต์รันไทม์
ซอฟต์แวร์มักขึ้นอยู่กับไลบรารีซอฟต์แวร์ที่ใช้ร่วมกันและส่วนประกอบรันไทม์ของซอฟต์แวร์มาตรฐาน หากไม่ได้ติดตั้ง เสียหาย หรือมีเวอร์ชันไม่ถูกต้อง ก็อาจทำให้เกิดปัญหาได้ ตัวอย่างขององค์ประกอบรันไทม์ดังกล่าว ได้แก่ แพ็คเกจ Microsoft Visual C++ แบบแจกจ่ายต่อได้
คุณสามารถดาวน์โหลด VC++ ที่จำเป็นซึ่งสามารถแจกจ่ายต่อได้จากเว็บไซต์ Microsoft แต่โดยปกติแล้วจะรวมอยู่ในซอฟต์แวร์ที่ต้องการ ดังนั้นการติดตั้งใหม่หรือซ่อมแซมแอปควรคืนค่าไลบรารีรันไทม์ Visual C++ ด้วย นี่เป็นหนึ่งในปัญหาคอมโพเนนต์รันไทม์ที่ง่ายที่สุดในการระบุ เนื่องจากข้อความแสดงข้อผิดพลาดรันไทม์มักจะระบุว่าเป็น “ข้อผิดพลาดรันไทม์ C++”
ตรวจสอบไฟล์ที่เสียหาย
ข้อมูลเสียหายเกิดขึ้นเมื่อค่าและศูนย์ที่ประกอบเป็นไฟล์เสียหายหรือถูกเขียนทับด้วยเหตุผลบางประการ ความเสียหายต่อไฟล์ระบบหรือแอปพลิเคชันอาจทำให้เกิดข้อผิดพลาดรันไทม์ที่ไม่คาดคิดได้
คุณสามารถเรียกใช้ ตัวตรวจสอบไฟล์ระบบ Windows (SFC) เพื่อตรวจสอบและซ่อมแซมความเสียหายที่เกิดกับไฟล์ระบบ สำหรับแอปพลิเคชัน ส่วนใหญ่ตัวติดตั้งจะมีตัวเลือก "ซ่อมแซม" หากคุณเรียกใช้โดยไม่ถอนการติดตั้งแอปก่อน ด้วยไคลเอนต์ซอฟต์แวร์ เช่น ไอน้ำ คุณยังสามารถใช้ตัวเลือก “ยืนยัน” ในเกมของคุณเพื่อตรวจสอบว่าไฟล์ยังคงสมบูรณ์อยู่
ทำการสแกนมัลแวร์
มัลแวร์หลายประเภทแทรกซึมเข้าไปในโค้ดที่กำลังทำงานอยู่ ไฟล์ข้อมูลเสียหาย หรือแก้ไขไฟล์ปฏิบัติการ ทั้งหมดนี้อาจทำให้เกิดข้อผิดพลาดรันไทม์ได้ หากต้องการแยกมัลแวร์ออกจากสาเหตุที่ทำให้คุณได้รับข้อผิดพลาด ให้ทำการสแกนโดยใช้ซอฟต์แวร์ป้องกันไวรัสหรือซอฟต์แวร์ป้องกันมัลแวร์ที่คุณชื่นชอบ.
ทำการทดสอบหน่วยความจำ
ก่อนที่ซอฟต์แวร์ที่ทำงานอยู่ของคุณจะเข้าถึง CPU เพื่อประมวลผล ซอฟต์แวร์จะหยุดทำงานใน RAM ของคุณ หาก RAM ของคุณชำรุด นี่อาจทำให้เกิดข้อผิดพลาดรันไทม์ที่ยากต่อการติดตาม รัน ทดสอบหน่วยความจำ และตรวจสอบให้แน่ใจว่าไม่ใช่ปัญหากับการพลิกบิตในโมดูลหน่วยความจำของคุณ!
.