Sun Studio 12:Fortran 编程指南

6.3.3.1 建立异常处理程序函数

要将函数作为异常处理程序建立,请将函数名称与要监视的异常的名称和要采取的操作一起传递给 ieee_handler()。一旦建立了处理程序,无论何时出现特定的浮点异常和调用指定的函数,都会产生 SIGFPE 信号。

ieee_handler() 的调用形式如下表所示:

表 6–4 ieee_handler (action , exception , handler) 的参数

参数 

类型 

可能值 

action

character

getsetclear

exception

character

invaliddivisionoverflowunderflowinexact

handler

函数名 

用户处理函数的名称或 SIGFPE_DEFAULT、SIGFPE_IGNORESIGFPE_ABORT

返回值 

integer

0 =OK

f95 编译的、调用 ieee_handler() 的 Fortran 95 例程还应该声明:

#include ’floatingpoint.h’

特殊参数 SIGFPE_DEFAULTSIGFPE_IGNORESIGFPE_ABORT 定义在这些包含文件中,可用于更改与特定异常相应的程序行为:

SIGFPE_DEFAULT SIGFPE_IGNORE

出现指定异常时不采取任何操作。 

SIGFPE_ABORT

程序在异常时中止(可能会使用转储文件)。