检测并捕获浮点异常
浮点运算的 IEEE 标准定义了许多异常(或错误)情况,可能需要特别小心才能避免或从中恢复。 以下主题旨在帮助您在出现此类异常情况时使程序安全工作,同时牺牲最小量的性能。
浮点硬件总是检测一些浮点异常条件(IEEE 标准严格定义):上溢、下溢、除零、无效和不精确。
缺省情况下,发生的唯一操作是设置状态标志。 程序继续没有问题(尽管从那时起的结果可能不是您所期望的)。 如果您想知道何时发生异常,您可以安排这些异常条件中的一个或多个来生成信号。
该信号会导致分支到处理程序例程。 处理程序在信号发生时接收关于信号类型和程序状态的信息。 它可以生成核心转储,显示显示发生异常的位置的列表,修改计算结果或执行您指定的一些其他处理。
操作系统提供用于处理浮点异常条件的工具。 这些设施生成 SIGFPE 信号。