PowerShell:
การจัดการกับข้อผิดพลาด
วิธีการ:
# วิธีเบื้องต้นในการจัดการข้อยกเว้นด้วย Try-Catch
try {
# โค้ดที่อาจทำให้เกิดข้อผิดพลาด
$result = 1 / 0
} catch {
# การดำเนินการหลังจากเกิดข้อผิดพลาด
Write-Host "อุ๊บส์, เกิดข้อผิดพลาด: $_"
}
# การแสดงข้อความข้อผิดพลาดที่กำหนดเอง
try {
Get-Item "nonexistentfile.txt" -ErrorAction Stop
} catch {
Write-Host "ไม่พบไฟล์ดังกล่าว"
}
# การใช้ตัวแปร $Error เพื่อตรวจสอบข้อผิดพลาดล่าสุด
ศึกษาเพิ่มเติม
PowerShell ได้พัฒนาจาก Monad มาอย่างยาวนาน การจัดการข้อผิดพลาดกลายเป็นสิ่งที่ทรงพลังมากขึ้นเรื่อยๆ โดยเสนอคุณสมบัติที่คล้ายคลึงกับภาษาโปรแกรมอื่น ๆ โครงสร้าง try-catch-finally
เป็นหนึ่งในการผสมผสานจากภาษาอื่น ๆ เช่น C# ก่อนหน้านี้ นักเขียนสคริปต์ต้องพึ่งพาการตรวจสอบเงื่อนไขและใช้ตัวแปรอัตโนมัติ $Error
PowerShell ยังมีสองประเภทหลักของข้อผิดพลาด: ข้อผิดพลาดที่สิ้นสุดการทำงานและข้อผิดพลาดที่ไม่สิ้นสุดการทำงาน ข้อผิดพลาดที่สิ้นสุดการทำงานจะหยุดการทำงานของสคริปต์เว้นแต่จะถูกจับในบล็อก try-catch
ในขณะที่ข้อผิดพลาดที่ไม่สิ้นสุดการทำงานจะไม่สิ้นสุดเว้นแต่คุณจะระบุ -ErrorAction Stop
การแยกข้อผิดพลาดนี้สำคัญมากเนื่องจากให้ความควบคุมว่าข้อผิดพลาดควรหยุดสคริปต์ทั้งหมดจริงๆ หรือสามารถบันทึกและละเลยได้
การจัดการข้อผิดพลาดของ PowerShell ยังอนุญาตให้มีบล็อก finally
ด้วย ซึ่งทำงานไม่ว่าจะเกิดข้อผิดพลาดหรือไม่ก็ตาม มันเป็นเครื่องมือที่ยอดเยี่ยมสำหรับงานทำความสะอาด
เมื่อคุณพยายามเขียนสคริปต์จริงๆ คุณยังสามารถจัดการกับประเภทของข้อยกเว้นที่เฉพาะเจาะจง ซึ่งให้การควบคุมที่เฉียบขาดยิ่งขึ้น
หรืออีกทางเลือกหนึ่งคือการใช้พารามิเตอร์ -ErrorVariable
เพื่อจับข้อผิดพลาดโดยไม่ทำให้เกิดข้อยกเว้น และตัวแปร $?
บอกคุณว่าการดำเนินการล่าสุดประสบความสำเร็จหรือไม่ เป็นเครื่องมือที่มีประโยชน์ แม้จะไม่สะอาดเหมือนกับการใช้ try-catch
อย่างแน่นอน