ค้นหาเว็บไซต์

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 ที่นี่

บทความที่เกี่ยวข้อง