Haskell怎么处理错误和异常

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

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!