首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何显示Haskell中抛出的错误的回溯

显示Haskell中抛出的错误的回溯(backtrace)可以通过使用GHC.Stack模块中的callStackprettyCallStack函数来实现。以下是一个简单的示例:

代码语言:haskell
复制
import GHC.Stack

-- 定义一个可能会抛出异常的函数
divide :: Int -> Int -> Int
divide x y = x `div` y

-- 定义一个处理异常的函数,并显示回溯
handleError :: Either SomeException a -> IO ()
handleError (Left e) = do
  putStrLn "发生错误:"
  print e
  putStrLn "回溯:"
  print callStack
handleError (Right _) = putStrLn "操作成功"

main :: IO ()
main = do
  let result = try (evaluate (divide 10 0)) :: IO (Either SomeException Int)
  handleError result

在这个示例中,我们定义了一个可能会抛出异常的divide函数,然后在main函数中使用try函数捕获异常,并将异常传递给handleError函数。在handleError函数中,我们使用callStack函数获取回溯信息,并使用prettyCallStack函数将其格式化为可读的字符串。最后,我们将回溯信息输出到控制台。

需要注意的是,callStack函数只能在使用-prof选项编译程序时生效。如果不需要回溯信息,可以使用HasCallStack类型类来代替callStack函数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

12分3秒

05_尚硅谷_Promise从入门到自定义_错误的处理(捕获与抛出)

47秒

Elastic AI助手:解释APM中的错误或堆栈跟踪

30分53秒

32. 尚硅谷_佟刚_Struts2_类型转换错误消息的显示和定制

8分7秒

40. 尚硅谷_佟刚_SpringMVC_错误消息的显示及国际化.avi

5分40秒

如何使用ArcScript中的格式化器

1分36秒

如何防止 Requests 库中的非 SSL 重定向

2分18秒

IDEA中如何根据sql字段快速的创建实体类

3分29秒

如何将AS2 URL中的HTTP修改为HTTPS?

59分41秒

如何实现产品的“出厂安全”——DevSecOps在云开发运维中的落地实践

1分11秒

Adobe认证教程:如何在 Adob​​e Photoshop 中制作拉伸的风景?

2分3秒

小白教程:如何在Photoshop中制作真实的水波纹效果?

36秒

PS使用教程:如何在Mac版Photoshop中画出对称的图案?

领券