非详尽模式的更好例外情况

2023-11-22

当 GHCi 在运行时发现调用生成的值与函数的模式匹配不匹配时,是否有办法让 GHCi 生成更好的异常消息?

它目前给出了产生非详尽模式匹配的函数的行号,虽然有时很有帮助,但确实需要一轮调试,有时我觉得一遍又一遍地做同一组事情。因此,在尝试制定解决方案之前,我想看看是否存在其他问题。

异常消息除了给出行号之外还显示它尝试进行哪种类型的调用?

这可能吗?


尝试在 ghci 中打开警告。这使得您可以通过传递 ghc 获得编译时警告-W, 例如。您可以通过多种方式执行此操作:

ghci -fwarn-incomplete-patterns

Or 尼尔·米切尔 (Neil Mitchell) 描述了他如何在他的.ghci。以下是相关摘录:

:set -fwarn-incomplete-patterns

您也可以在 ghci 中手动输入此内容,但每次启动时都这样做会很痛苦。这样输入,它只适用于在提示符下输入的语句,不适用于加载文件:l。相反,您可以将此注释放在要警告不完整模式的文件顶部:

{-# OPTIONS_GHC -fwarn-incomplete-patterns #-}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

非详尽模式的更好例外情况 的相关文章

  • 用纯函数式语言保持状态

    我正在尝试弄清楚如何执行以下操作 假设您正在开发直流电机的控制器 您希望让它以用户设置的特定速度旋转 def set point ref sp 90 while true let curr read speed controller set
  • 为什么我的 Haskell 断言只发生在 IHaskell 中?

    如果我定义 import Control Exception assert import Data Char ord f String gt String f s assert all elem letters s letters lt g
  • ~/.cabal/config 中的“共享”是什么意思?

    我想 共享 会让cabal install更快 对吧 共享的默认值为 False 我们应该使用 True 还是 False 来共享 thanks 这意味着 还构建动态链接 又名共享 版本的库 这些版本与cabal install cabal
  • (MSTest) 扩展 ExpectedExceptionBaseAttribute 隐藏测试失败解释

    运行此测试时 TestMethod ExpectedException typeof SpecialException public void Test1 throw new NotImplementedException Visual S
  • Haskell Stack 包安装错误

    user stack install dictionaries Error While constructing the build plan the following exceptions were encountered In the
  • 处理算法中的问题/错误的推荐方法

    将堆栈跟踪排除在外 可以说 错误 的想法是一个您不希望发生但确实发生的问题 如果我使用布尔系统来检查操作是否成功完成 它将如下所示 String array new String 10 int i 0 public boolean acce
  • 如何从有向无环图导出FRP?

    我目前正在研究我的下一个项目 目前处于预规划阶段 因此这个问题只是为了了解现有技术的概述 Setup 我有一个具有多个输入和输出的有向无环图 DAG 现在考虑人工神经网络 处理这种结构的常见方法是在每个 时间 步骤上处理整个网络 我相信这是
  • Ruby 中救援的替代方案?

    好像我有begin rescue end我的代码中到处都是语句 这似乎不是正确的做法 谁能建议我如何捕获任何异常而不必将所有内容都放在里面begin rescue end 有什么方法可以让 Ruby 闭嘴并继续前进 即使出现异常也是如此 与
  • 如何在 Python 中打印异常?

    如何打印错误 异常except block try except print exception 对于 Python 2 6 及更高版本和 Python 3 x except Exception as e print e 对于 Python
  • 如何使用openpyxl获取位置(行,列)单元格的值?

    我正在使用 openpyxl 获取由行号和列号定义的特定位置处的单元格的值 文档中的代码不起作用 文档链接 http openpyxl readthedocs io en default tutorial html accessing on
  • 在 WIN32 与 WIN64 中配置浮点单元上下文

    我正在尝试编写一个未处理的异常过滤器 请参阅 SetUnhandledExceptionFilter 以与 Windows SEH 一起使用来报告无效的浮点操作 我想捕获异常 打印堆栈跟踪 然后禁用浮点异常并使用生成的非有限或非数字值恢复执
  • 如何在 C# 中处理特定 SQL 异常(例如,违反唯一约束)?

    我的问题是如何在 C 中处理 sql 异常 有没有办法检查数据访问层抛出什么样的 sql 异常 例如 如果 db 抛出唯一约束异常或外键异常 有没有办法从 c 捕获它 您对这些数据库异常使用的异常处理模式是什么 看看SqlException
  • Haskell 中的随机枢轴快速排序

    是否有可能在 Haskell 中实现快速排序 使用 RANDOM PIVOT 但仍然有一个简单的Ord a gt a gt a 签名 我开始了解 Monad 目前 我将 monad 解释为某种 命令模式 这对于 IO 非常有用 所以 我知道
  • 自动函子实例

    给定以下代数类型 ghci gt data Foo a Foo a 然后我实例化其中之一 ghci gt let f Foo foo 最后 我想打电话给fmap将函数应用为 a gt b gt Foo a gt Foo b ghci gt
  • Haskell - 让函数返回空字符

    我正在尝试创建一个函数来删除字符串中的每个第 n 个元素 dropEvery String gt Int gt String dropEvery str n map char indx gt if indx mod n 0 then cha
  • 为什么阴谋集团重新安装“总是危险的”?

    使用 Cabal 重新安装软件包时 通常会看到以下警告 警告 请注意 重新安装总是很危险的 无论如何继续 此消息背后的一些原因是什么 目前 重新安装软件包意味着破坏性地覆盖已安装的软件包 如果旧包对系统有任何反向依赖性 它们将不再工作 为了
  • 捕获非特定异常(例如 System.Exception)是一种不好的做法吗?为什么?

    我目前正在进行代码审查 下面的代码让我跳了起来 我发现这段代码存在多个问题 你是否同意我的观点 如果是这样 我该如何向我的同事解释这是错误的 顽固型 捕获一般异常 Exception ex 使用 if ex 是某物 而不是另一个 catch
  • Haskell 中的纯函数是否有可能改变变量的本地副本?

    Haskell 中的纯函数是否有可能改变变量的本地副本 就像 clojure 中提到的那样函数式编程是一个骗局 http swannodette github io 2013 06 10 porting notchs minecraft d
  • 我如何在 python 2.6 中测试抽象方法

    我有一个抽象类 import abc class Hello object metaclass abc ABCMeta abc abstractmethod def add self foo pass abc abstractmethod
  • Java 中更高级的泛型

    假设我有以下课程 public class FixExpr Expr

随机推荐