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 การจัดการข้อผิดพลาดสนับสนุนให้นักพัฒนาพิจารณาเส้นทางทั้งหมดล่วงหน้า เพื่อหลีกเลี่ยงข้อผิดพลาดของกรณีที่ถูกลืม

ดูเพิ่มเติม: