Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

วิธีแก้ไขข้อผิดพลาด "Unhandled Exception has Occurred in your Application" บน Windows

ข้อผิดพลาด An unhandled win32 exception occurred in *application_name* มักเกิดเมื่อเปิดแอปที่สร้างด้วย Visual Studio มักพบกับ Uplay, Internet Explorer และเกมเก่า (Legacy games) สำหรับ Windows เวอร์ชันก่อน

วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows

หมายเหตุ: นี่คือวิธีแก้ไข Runtime Library ที่เกี่ยวกับ Visual C++

สาเหตุของข้อผิดพลาด Unhandled Exception has Occurred in your Application บน Windows

มีสาเหตุง่ายๆ หลายอย่าง หากระบุสาเหตุถูกต้อง จะแก้ไขได้อย่างมี hiệu quả:

  • แอนตี้ไวรัสอาจเป็นสาเหตุ – บางตัว เช่น Panda Antivirus ทราบว่าก่อให้เกิดปัญหานี้ ควรเปลี่ยนตัวเลือก
  • โปรแกรมหรือมัลแวร์ทำงานอยู่ – หากมีโปรแกรมหรือมัลแวร์ทำงาน ให้กำจัด ลอง Clean Boot ดูว่าสาเหตุตรงหรือไม่
  • Microsoft .NET Framework ติดตั้งเสียหาย – ไฟล์หลักเสียหาย ให้ลอง Repair, ติดตั้งเวอร์ชันใหม่, หรือรัน SFC scan
  • Script Debugging เปิดผ่าน Registry – Registry key บางตัวก่อให้เกิดปัญหา ต้อง Disable Script Debugging ผ่าน Registry
  • Access violation ใน Msvcr92.dll – Buffer เกินหรือ Final byte ผิดปกติ ต้องติดตั้ง Windows Update ทั้งหมด
  • ลบ Registry key ของ Ubisoft Launcher – หากเจอข้อผิดพลาดตอนเปิด Uplay.exe มาจากบั๊ก Ubisoft Game Launcher แก้ได้โดยลบ Registry value ของ Launcher
  • System file corruption – ความไม่สอดคล้องของไฟล์ระบบก็ทำให้เกิดปัญหา เสียหายเล็กน้อยแก้ได้ด้วย DISM และ SFC หากรุนแรง ต้อง Clean install หรือ Repair install

วิธีแก้ไข 1: ติดตั้ง Windows Update ทั้งหมดที่รอคอยอยู่

สาเหตุทั่วไปคือ แอปที่สร้างสำหรับ x64 ใช้ MSVCR90.DLL เรียกฟังก์ชัน strncpy ทำให้เกิด Access violation ใน Msvcr92.DLL แอปหยุดทำงาน Microsoft รู้จักปัญหานี้และปล่อย Hotfix ในการอัปเดต Visual Studio 2008 ซึ่ง Windows อัปเดตอัตโนมัติ ขั้นตอนด้านล่างใช้ได้กับทุกเวอร์ชัน Windows

  1. กด Windows key + R เปิด Run dialog พิมพ์ ms-settings:windowsupdate กด Enter เปิด Windows Update ใน Settingsวิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows

    หมายเหตุ: Windows 7/8.1 ใช้คำสั่ง wuapp แทน

  2. ในหน้าจอ Windows Update คลิก Check for updates ทำตามพรอมต์ติดตั้ง ทุก Windows Update ที่รออยู่วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows

    หมายเหตุ: สำคัญมากที่ต้องติดตั้ง ทุกอัปเดต ไม่ใช่แค่ Critical เท่านั้น Hotfix อยู่ใน Optional updates ต้องติดตั้งหมด

  3. หากโปรมต์รีสตาร์ทก่อนติดตั้งครบ ให้รีสตาร์ท แล้วกลับมาหน้าจอนี้ติดตั้งต่อจนครบ
  4. ติดตั้งครบทุกอัปเดต รีสตาร์ทครั้งสุดท้าย ทำซ้ำการกระทำที่ทำให้เกิดข้อผิดพลาด ดูว่าแก้ไขหรือยัง

หายังเจอข้อผิดพลาด ลองวิธีถัดไป

วิธีแก้ไข 2: เปลี่ยนแอนตี้ไวรัส

แอนตี้ไวรัสฟรีบางตัวทำงานไม่คู่คุณกับสิ่งอื่นบนคอมพิวเตอร์ หากปัญหาเกิดขณะแอนตี้ไวรัสทำงาน ให้เปลี่ยนตัวเลือกที่ดีกว่า

  1. เปิด Control Panel ผ่าน Start หรือคลิกไอคอนเฟืองเพื่อ Settings (Windows 10)
  2. ใน Control Panel เลือก View as – Category มุมขวาบน คลิก Uninstall a Program ใต้ Programs
วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  1. ถ้าใช้ Settings app คลิก Apps จะเห็นรายการโปรแกรมทั้งหมด
  2. หาแอนตี้ไวรัสของคุณ คลิก Uninstall
  3. ทำตาม Uninstall Wizard
วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  1. คลิก Finish เมื่อเสร็จ รีสตาร์ท ตรวจสอบว่าข้อผิดพลาดหายไปหรือยัง เลือก แอนตี้ไวรัสที่ดีกว่า

วิธีแก้ไข 3: ลบ Registry value ของ Launcher (ถ้ากรณี Uplay)

หากเจอข้อผิดพลาดตอนเปิด Uplay.exe หรือแอป Ubisoft อื่นๆ มาจากบั๊ก Ubisoft Game Launcher ปัญหานี้พบบ่อยใน Windows 10 โดยเฉพาะผู้ที่ติดตั้ง Steam และ Uplay พร้อมกัน

ผู้ใช้หลายคนแก้ได้โดย用 Registry Editor ลบ String value ของ Launcher ทำให้ขัดแย้งหาย ทำให้ทั้งสองแอปทำงานได้พร้อมกัน

  1. กด Windows key + R พิมพ์ regedit กด Enter เปิด Registry Editor กด Yes ให้สิทธิ์แอดมิน (UAC)วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  2. ใน Registry Editor ไปที่:
    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Ubisoft

    หมายเหตุ: ไปได้ทั้ง Manual หรือวางที่อยู่ใน Navigation bar บนสุด กด Enter

  3. ในด้านขวา คลิกขวา Launcher เลือก Deleteวิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows

    หมายเหตุ: หากลบไม่ได้ ดูวิธี Take ownership of registry keys หลังลบ Launcher จะสร้าง String value ใหม่พร้อมข้อมูลใหม่ แก้ปัญหาได้

  4. ปิด Registry Editor รีสตาร์ทคอมพิวเตอร์
  5. ตอนบูทใหม่ ลองทำซ้ำการกระทำที่ทำให้เกิดข้อผิดพลาด ดูว่าแก้ไขหรือยัง

หายังมีปัญหา ลองวิธีต่อไป

วิธีแก้ไข 4: Reset Internet Explorer (ถ้ากรณี IE)

Internet Explorer (IE) ที่เสียหายก็ทำให้เกิดปัญหานี้ หากเจอ An unhandled win32 exception occurred in iexplore.exe มักหลังสคริปต์ล้มเหลว

แก้โดย Reset Internet Explorer ผ่าน Internet Options ผู้ใช้หลายคนยืนยันว่าสำเร็จ

  1. ปิด Internet Explorer, Edge และกระบวนการพื้นหลังที่เกี่ยวข้องทั้งหมด
  2. กด Windows key + R พิมพ์ inetcpl.cpl กด Enter เปิด Internet Optionsวิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows

    หมายเหตุ: หากมี UAC คลิก Yes ให้สิทธิ์แอดมิน

  3. ในหน้าจอ Internet Properties เลือกแท็บ Advanced ไปที่ Reset Internet Explorer settings คลิก Resetวิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  4. หน้าจอยืนยัน ติ๊ก Delete personal settings คลิก Resetวิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  5. รอเสร็จสิ้น รีสตาร์ทเครื่อง ดูว่าปัญหาแก้ไขที่ startup ถัดไปหรือไม่

หายังเจอ An unhandled win32 exception occurred in iexplore.exe ลองวิธีต่อไป

วิธีแก้ไข 5: ปิด Script Debugging และ Registry Keys ที่เกี่ยวข้อง (ถ้ากรณี IE + VS)

หากเจอปัญหากับ IE บนเครื่องที่ติดตั้ง VS ไปด้วย อาจเกิดจาก Script Debugging เปิดอยู่ และ Registry entries มีข้อมูลเสียหาย

ผู้ใช้หลายคนแก้ได้โดยปิด Script Debugging ใน Internet Options แล้วลบ Registry keys ที่เกี่ยวข้อง

  1. กด Windows key + R พิมพ์ inetcpl.cpl กด Enter เปิด Internet Options กด Yes ให้สิทธิ์แอดมิน (UAC)วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  2. ใน Internet Properties เลือกแท็บ Advanced
  3. เลื่อนลงใน Settings ติ๊ก Disable script debugging (Internet Explorer)วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  4. กด Apply บันทึก ปิด Internet Properties
  5. กด Windows key + R อีกครั้ง พิมพ์ regedit กด Enter เปิด Registry Editor ให้สิทธิ์แอดมิน (Yes UAC)วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  6. ใน Registry Editor ไปที่:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug (32-Bit Machine)
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug (64-Bit Machine)

    หมายเหตุ: ตำแหน่งต่างกันตามเวอร์ชัน Windows 32-bit ใช้บรรทัดแรก 64-bit ใช้บรรทัดที่สอง

  7. ไปที่ตำแหน่งที่ถูกต้อง ด้านขวา คลิกขวา Debugger เลือก Deleteวิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  8. ไปที่ตำแหน่งที่สอง:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\ (32-Bit Machine)
    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework (64-Bit Machine)

    หมายเหตุ: เข้าถึง Registry key ตาม bit version ของ Windows ที่ใช้

  9. ด้านขวา ลบค่า DbgManagedDebugger คลิกขวาเลือก Deleteวิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  10. ปิด Registry Editor รีสตาร์ทคอมพิวเตอร์
  11. ตอน Startup ใหม่ ดูว่าปัญหายังคงอยู่หรือไม่

หายังเจอ An unhandled win32 exception occurred ลองวิธีต่อไป

วิธีแก้ไข 6: ติดตั้ง .NET Framework เวอร์ชันล่าสุด และ Repair

.NET Framework จำเป็นต่อเกมและโปรแกรมสมัยใหม่ ก่อน Repair ให้ติดตั้งเวอร์ชันล่าสุดก่อน

ไปที่ลิงก์นี้ คลิกปุ่มดาวน์โหลดสีแดง เพื่อดาวน์โหลด Microsoft .NET Framework ล่าสุด หลังดาวน์โหลดเสร็จ รันไฟล์ ต้องมีอินเทอร์เน็ตตลอดการติดตั้ง ทำตามคำแนะนำบนหน้าจอ

  1. ติดตั้งเวอร์ชันล่าสุดเสร็จ ตรวจสอบความสมบูรณ์: กด Windows Key + R เปิด Run dialog
  2. พิมพ์ control.exe กด OK เปิด Control Panel
วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  1. คลิก Uninstall a Program แล้ว Turn Windows features on or off หา .NET Framework 4.x.x ให้แน่ใจว่า Enable (x.x คือเวอร์ชันล่าสุดของ OS)
  2. หาติ๊ก .NET Framework 4.x.x ไม่ได้ติ๊ก ให้ติ๊ก แล้ว OK ปิด Windows Feature รีบูทเครื่อง
วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  1. หา .NET Framework 4.x.x Enable อยู่แล้ว ให้ Repair โดย ยกเลิกติ๊ก รีบูท แล้วติ๊กใหม่ รีบูทอีกครั้ง

วิธีแก้ไข 7: Clean Boot

โปรแกรมและบริการต่างๆ อาจส่งผลต่อ .NET Framework สาเหตุมักเป็นแอนตี้ไวรัส ลองปิดดู แต่เพื่อแน่ใจว่าไม่มีอะไรขัดขวาง ให้ Clean Boot จะปิดโปรแกรมและบริการ Non-Microsoft ทั้งหมด จะรู้ได้ว่าโปรแกรมไหนก่อให้เกิดข้อผิดพลาด

  1. กด Windows + R พิมพ์ MSCONFIG กด OK
  2. แท็บ Boot ยกเลิกติ๊ก Safe Boot (ถ้าติ๊กอยู่)
วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  1. แท็บ General เลือก Selective startup ยกเลิกติ๊ก Load startup items
  2. แท็บ Services ติ๊ก Hide all Microsoft services แล้วคลิก Disable all
วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  1. แท็บ Startup คลิก Open Task Manager ใน Task Manager > Startup tab คลิกขวาแต่ละ Startup item ที่ Enable เลือก Disable
วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  1. ตอนนี้ต้องทำกระบวนการน่าเบื่อ: Enable Startup items ทีละตัว แล้วรีสตาร์ท ตรวจสอบว่าปัญหากลับมาหรือไม่ ทำซ้ำกับ Services ที่ Disable ไว้ขั้นตอน 4
  2. พบ Startup item หรือ Service ที่ก่อให้เกิดปัญหา ให้แก้ไข: ถ้าเป็นโปรแกรม Reinstall หรือ Repair ถ้าเป็น Service ให้ Disable ฯลฯ

วิธีแก้ไข 8: ใช้ SFC สแกน Memory Leaks

รายงานว่า .NET Framework corruption เกี่ยวข้องกับ System files ที่ผิดปกติ ปัญหาอยู่ลึกในไฟล์ระบบ วิธีเดียวคือรัน System File Checker (SFC) จะสแกนหาข้อผิดพลาดและพยายามแก้ไข/แทนที่

  1. ค้นหา Command Prompt ใน Start menu หรือกดปุ่ม Search คลิกขวาผลลัพธ์แรก เลือก Run as administrator
  2. หรือ Windows Logo Key + R พิมพ์ cmd ใน Run dialog กด Ctrl + Shift + Enter เปิด Command Prompt แบบแอดมิน
วิธีแก้ไขข้อผิดพลาด  Unhandled Exception has Occurred in your Application  บน Windows
  1. พิมพ์คำสั่งต่อไปนี้ กด Enter ทุกคำสั่ง รอข้อความ Operation completed successfully หรือคล้ายกัน
    sfc /scannow
  1. รีสตาร์ทคอมพิวเตอร์ ตรวจสอบว่า Unhandled Exception error ยังเกิดขึ้นหรือไม่

วิธีแก้ไข 9: Clean Install Windows

หาวิธีข้างต้นทั้งหมดล้มเหลว แสดงว่าอาจเป็น Windows inconsistency ที่แก้ไขแบบเดิมไม่ได้

หากเป็นกรณีนี้ แก้ได้โดย Reset ทุกคอมโพเนนต์ของ Windows มี 2 ทางเลือก:

  • Repair install (In-place repair) – เหมาะสำหรับ Refresh ทุกคอมโพเนนต์ OS แต่บางคนรู้สึกซับซ้อน ต้องมี Installation media ที่เข้ากันได้ ข้อดี: ข้อมูลส่วนตัว (เกม, แอป, ไฟล์) จะคงอยู่แม้ไม่ Backup
  • Clean install – วิธีง่ายที่สุด ไม่ต้องการ Installation media (ทำผ่าน Windows GUI) แต่หากไม่ Backup ข้อมูลล่วงหน้า ต้องยอมรับ Data loss ทั้งหมด