溫馨提示×

Haskell怎么處理錯誤和異常

小億
117
2024-04-16 15:52:11
欄目: 編程語言

在Haskell中處理錯誤和異常通常使用EitherMaybe類型來表示可能的錯誤情況,并使用catch函數來捕獲異常。

  1. 使用Either類型處理錯誤:
-- 定義一個可能返回錯誤的函數
divide :: Int -> Int -> Either String Int
divide _ 0 = Left "Division by zero"
divide x y = Right (x `div` y)

-- 調用函數并處理錯誤
case divide 10 2 of
  Left err -> putStrLn err
  Right result -> print result
  1. 使用Maybe類型處理錯誤:
-- 定義一個可能返回錯誤的函數
divide :: Int -> Int -> Maybe Int
divide _ 0 = Nothing
divide x y = Just (x `div` y)

-- 調用函數并處理錯誤
case divide 10 2 of
  Nothing -> putStrLn "Division by zero"
  Just result -> print result
  1. 使用catch函數捕獲異常:
import Control.Exception

-- 定義一個可能引發異常的函數
divide :: Int -> Int -> Int
divide x y = if y == 0 then error "Division by zero" else x `div` y

-- 使用catch函數捕獲異常
main = catch (print (divide 10 2))
             (\e -> putStrLn $ "Error: " ++ show (e :: SomeException))

以上是在Haskell中處理錯誤和異常的一些常見方法,開發者可以根據具體情況選擇合適的方式來處理錯誤和異常。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女