次の例では、浮動小数点の例外を検出するためのハンドラルーチンを作成する方法を示します。
例: 例外を検出して、異常終了します。
demo% cat DetExcHan.f EXTERNAL myhandler REAL :: r = 14.2 , s = 0.0 i = ieee_handler ('set', 'division', myhandler ) t = r/s END INTEGER FUNCTION myhandler(sig,code,context) INTEGER sig, code, context(5) CALL abort() END demo% f95 DetExcHan.f demo% a.out 異常終了 demo%
SIGFPE は、浮動小数点演算の例外が発生すると必ず生成されます。SIGFPE が検出されると、制御が myhandler 関数に渡され、即座に異常終了します。-g を付けてコンパイルし、dbx を使用すると、例外箇所を突き止めることができます。