PowerShell: วิธีใช้ลองจับและพิมพ์เฉพาะข้อความแสดงข้อผิดพลาด
คุณสามารถใช้คำสั่ง ลอง กับบล็อก catch ใน PowerShell เพื่อจัดการข้อผิดพลาด
นี่คือสิ่งที่แต่ละสิ่งเหล่านี้ทำ:
คำสั่ง ลอง “พยายาม” เพื่อดำเนินการบางอย่าง
บล็อก catch ระบุการดำเนินการบางอย่างที่จะดำเนินการหากมีข้อผิดพลาดในคำสั่ง try
หากต้องการพิมพ์เฉพาะข้อความแสดงข้อผิดพลาดในบล็อก catch คุณสามารถใช้ไวยากรณ์ต่อไปนี้:
try
{
1/0
}
catch
{
Write-Host $_
}
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: ใช้ลองจับและพิมพ์เฉพาะข้อความแสดงข้อผิดพลาดใน PowerShell
สมมติว่าเราต้องการพยายามหาร 1 ด้วย 0
สมมติว่าเราพิมพ์การดำเนินการนี้ใน PowerShell โดยไม่ใช้คำสั่ง try:
เราได้รับข้อความแจ้งว่าเราพยายามหารด้วยศูนย์พร้อมกับรายละเอียดเพิ่มเติม
สมมติว่าเราต้องการดำเนินการแบบเดียวกันนี้ แต่ใช้คำสั่ง try กับ catch block ที่แสดงเฉพาะข้อความแสดงข้อผิดพลาดต่อไปนี้หากเกิดข้อผิดพลาด:
Attempted to divide by zero.เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อดำเนินการดังกล่าว:
try
{
1/0
}
catch
{
Write-Host $_
}ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:
เนื่องจากไม่สามารถหาร 1 ด้วย 0 ได้ บล็อก catch จึงพิมพ์ข้อความแสดงข้อผิดพลาดต่อไปนี้:
Attempted to divide by zero.
โปรดทราบว่าเราใช้ $_ ในบล็อก catch เนื่องจากมีตัวแปรอ็อบเจ็กต์ปัจจุบัน ซึ่งเก็บข้อความแสดงข้อผิดพลาดไว้ที่จุดนั้น
หากต้องการ คุณยังสามารถจัดรูปแบบข้อความแสดงข้อผิดพลาดที่จะแสดงโดยใช้สีเฉพาะได้
ตัวอย่างเช่น เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อพิมพ์ข้อความแสดงข้อผิดพลาดโดยใช้แบบอักษรสีแดง:
try
{
1/0
}
catch
{
Write-Host $_ -Foreground Red
}ภาพหน้าจอต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ:
โปรดสังเกตว่าขณะนี้ข้อความแสดงข้อผิดพลาดถูกพิมพ์เป็นสีแดง
ค้นหาข้อมูลเพิ่มเติมเกี่ยวกับการจัดรูปแบบข้อความโดยใช้ Write-Host cmdlet ที่นี่


