การจับ Exception จาก Task ที่ไม่ได้ catch ไว้ใน C#

slash-blog-c-exception

ในการเขียนโปรแกรมภาษา C# ให้ทำงานในเธรด (thread) ถ้าเกิดเอ็กเซ็พชัน (exception) ขึ้น จะตรวจสอบได้จาก Task.IsFaulted() ซึ่งเราต้องเก็บตัวแปรทาสค์ (task) ไว้

แต่การเขียนให้ตรวจสอบสถานะของทาสค์นั้น อาจไม่สะดวกและทำให้โปรแกรมซับซ้อน ใน C# 5.0 ขึ้นไปที่รองรับการใช้ async/await จะทำให้เขียนได้ง่ายขึ้นมาก โดยจับ exception เสมือนว่าทำงานแบบ synchronous ได้เลยดังนี้

Continue reading

Advertisements