Haskell怎么处理错误和异常

1594
2024/4/29 15:52:11
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在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中处理错误和异常的一些常见方法,开发者可以根据具体情况选择合适的方式来处理错误和异常。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Haskell中的泛型编程怎么实现