gpt4 book ai didi

haskell - Haskell 异常处理是如何工作的?

转载 作者:行者123 更新时间:2023-12-02 21:31:19 25 4
gpt4 key购买 nike

foldl1 (+) []

如何捕获产生的错误?

最佳答案

纯代码可能会抛出异步,imprecise exceptions ,例如,当部分函数遇到输入时,它没有需要处理的情况。

这些通常是逻辑错误,表明程序规范中存在错误。

它们可能会通过 exception handler 被 IO 代码捕获(通常在程序的外层)。 .

例如,要捕获空列表中丢失的案例,

{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE BangPatterns #-}

import Control.Exception

main = do
handle (\(e :: SomeException) -> print $ "This program as a bug: " ++ show e) $ do
let !v = foldl1 (+) ([] :: [Int])
return ()

我们可以观察到异常被捕获,并且程序终止。

$ ./A
"This program as a bug: Prelude.foldl1: empty list"

关于haskell - Haskell 异常处理是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3648162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com