คุณออกนอกเส้นทางที่นี่
คุณมีข้อความแสดงข้อผิดพลาดที่ดีอยู่แล้ว ทำไมบนโลกที่คุณต้องการจะเขียนโค้ดที่การตรวจสอบ$?
อย่างชัดเจนหลังจากที่ทุกคำสั่งเดียว ? สิ่งนี้ยุ่งยากอย่างมากและเกิดข้อผิดพลาดได้ง่าย วิธีการแก้ปัญหาที่ถูกต้องคือการตรวจสอบหยุด$?
ให้ใช้กลไกในตัวของ PowerShell เพื่อระเบิดให้คุณแทน คุณเปิดใช้งานโดยตั้งค่าการกำหนดลักษณะข้อผิดพลาดเป็นระดับสูงสุด:
$ErrorActionPreference = 'Stop'
$?
ฉันใส่นี้ที่ด้านบนของทุกสคริปต์เดียวที่ผมเคยเขียนและตอนนี้ฉันไม่ได้มีการตรวจสอบ สิ่งนี้ทำให้โค้ดของฉันง่ายขึ้นและน่าเชื่อถือมากขึ้น
หากคุณเจอสถานการณ์ที่คุณจริงๆต้องปิดการทำงานนี้คุณสามารถมีข้อผิดพลาดหรือผ่านการตั้งค่าเพื่อฟังก์ชั่นเฉพาะการใช้ร่วมกันcatch
-ErrorAction
ในกรณีของคุณคุณอาจต้องการให้กระบวนการของคุณหยุดลงเมื่อเกิดข้อผิดพลาดแรกตรวจจับข้อผิดพลาดแล้วบันทึก
โปรดทราบว่าสิ่งนี้ไม่ได้จัดการกับกรณีที่ไฟล์ปฏิบัติการภายนอกล้มเหลว (รหัสออกไม่ใช่ศูนย์ตามอัตภาพ) ดังนั้นคุณยังคงต้องตรวจสอบ$LASTEXITCODE
ว่าคุณเรียกใช้หรือไม่ แม้จะมีข้อ จำกัด นี้ แต่การตั้งค่านี้ยังช่วยประหยัดโค้ดและความพยายามได้มาก
ความน่าเชื่อถือเพิ่มเติม
คุณอาจต้องการพิจารณาใช้โหมดเข้มงวด :
Set-StrictMode -Version Latest
ซึ่งจะป้องกันไม่ให้ PowerShell ดำเนินการโดยไม่โต้ตอบเมื่อคุณใช้ตัวแปรที่ไม่มีอยู่จริงและในสถานการณ์แปลก ๆ อื่น ๆ (ดู-Version
พารามิเตอร์สำหรับรายละเอียดเกี่ยวกับสิ่งที่ จำกัด )
การรวมการตั้งค่าทั้งสองนี้ทำให้ PowerShell มีภาษาที่ไม่เร็วมากขึ้นซึ่งทำให้การเขียนโปรแกรมง่ายขึ้นอย่างมาก