mod_fx エラーコード


 

エラーが発見され次第、処理が中断され、エラーコードが返ります。
そのため、複数のエラーを一度に見つけることはできません。


エラーコードを格納する変数を E とすると、Eは要素数3の一次元整数型配列変数となり、
エラーコードは配列要素0〜2によって、3セクションに分けられています。
原則として、

    第1セクションにはエラーの有無
    第2セクションにはエラーの種類
    第3セクションには、数学的エラーが起こった場合の、原因の関数の識別値

が格納されます。


ここでは、要素 0,1,2,3 がそれぞれ a,b,c,d であるようなエラーコードを、便宜上、 a.b.c.d と表すことにします。
第nセクションまでの情報によってエラーの全貌が把握できる場合、第n+1セクション以降の値は無視すればよいです。
例えば、第1セクションが0なら第2以降のセクションは読むまでもありません。

以下、各セクションの表す内容を示します。

 

< 第1セクション >

0 : エラー無し
1 : エラー有り

 

< 第2セクション >

1 : 文法エラー
2 : 定義域エラー
3 : 数値的規則エラー

 

< 第3セクション >

-1 : 0〜61のどれにも当てはまらないエラー
0  : 下記関数以外での0除算エラー
30 : sin
31 : cos
32 : tan
33 : asin
34 : acos
35 : atan
36 : deg2rad
37 : rad2deg
40 : sqrt
41 : pow
42 : log
50 : limit
51 : max
52 : min
53 : abs
54 : floor
55 : int
56 : roundup
57 : round
58 : ceil
60 : perm
61 : combi

 

例えば、

acos(2)     に対してコード 1.2.34
sin)0(      に対してコード 1.1.30
5/0         に対してコード 1.2.0

が返ります。

 

< 例外 >

・limit関数

「最小値」,「最大値」が逆転していてもエラーにはなりません。
逆転している場合はHSP標準のの limitf関数 と同じ動作になります。
すなわち、最大値のチェック → 最小値のチェック の順で処理されます。
(例) limitf(2,4,3) の結果は 3