Elm:
การจัดการกับข้อผิดพลาด
วิธีการ:
ปรัชญาหลักของ Elm คือ ไม่มีข้อยกเว้นในเวลาทำงาน (No Runtime Exceptions) ดังนั้น, Elm จึงใช้ระบบประเภทกับประเภทต่างๆ เช่น Maybe
และ Result
เพื่อจัดการกับข้อผิดพลาด
สำหรับสถานการณ์ Maybe
:
safeDivide : Float -> Float -> Maybe Float
safeDivide numerator denominator =
if denominator == 0 then
Nothing
else
Just (numerator / denominator)
-- เมื่อคุณรันมัน:
safeDivide 10 2
--> Just 5
safeDivide 10 0
--> Nothing
สำหรับสถานการณ์ Result
:
type Error = DivisionByZero
safeDivide : Float -> Float -> Result Error Float
safeDivide numerator denominator =
if denominator == 0 then
Err DivisionByZero
else
Ok (numerator / denominator)
-- และการใช้มัน:
safeDivide 10 2
--> Ok 5
safeDivide 10 0
--> Err DivisionByZero
การศึกษาลึก
ระบบประเภทของ Elm เป็นแบบเข้มงวด ซึ่งช่วยในการจับข้อผิดพลาดตั้งแต่เนิ่นๆ ในอดีต, ภาษาส่วนใหญ่พึ่งพาการยกเว้นและการตรวจสอบในเวลาทำงาน แต่ Elm เลือกการันตีในเวลาคอมไพล์ ทางเลือกเช่น Result
อนุญาตให้มีข้อมูลข้อผิดพลาดอย่างละเอียด ในขณะที่ Maybe
เหมาะสมกับสถานการณ์ใช่หรือไม่ใช่ Elm การจัดการข้อผิดพลาดสนับสนุนให้นักพัฒนาพิจารณาเส้นทางทั้งหมดล่วงหน้า เพื่อหลีกเลี่ยงข้อผิดพลาดของกรณีที่ถูกลืม
ดูเพิ่มเติม:
- ส่วนของคู่มืออย่างเป็นทางการของ Elm เกี่ยวกับการจัดการข้อผิดพลาด: การจัดการข้อผิดพลาด - บทนำ
- เอกสารของ Elm
Maybe
: Elm – Maybe - เอกสารของ Elm
Result
: Elm – Result