エラーが発生したときに、4Dが表示するエラーメッセージを抑制し、自前でエラーをログファイルに出力するメソッド。
使い方
JCL_err_OnErrCall
引数
なし
//JCL_err_OnErrCall
//20240128 wat
//標準エラー処理、コールバックメソッド。エラーはデスクトップの「ErrorLog.txt」に書き出す。
C_TEXT($msg)
C_LONGINT($i; $sizeOfAry)
ARRAY LONGINT($aryCords; 0)
ARRAY TEXT($aryComp; 0)
ARRAY TEXT($aryText; 0)
C_TEXT($errorText)
GET LAST ERROR STACK($aryCords; $aryComp; $aryText)
$sizeOfAry:=Size of array($aryCords)
$msg:="GET LAST ERROR STACK: $sizeOfAry=["+String($sizeOfAry)+"]"+Char(Carriage return)
For ($i; 1; $sizeOfAry)
$msg:=$msg+"cord=["+String($aryCords{$i})+"]"+Char(Tab)
$msg:=$msg+"component=["+$aryComp{$i}+"]"+Char(Tab)
$msg:=$msg+"error text=["+$aryText{$i}+"]"+Char(Carriage return)
$err_text:=JCL_err_4D_Error($aryCords{$i}; "error_codes.txt")
$msg:=$msg+"code text=["+$err_text+"]"+Char(Tab)
End for
$msg:=$msg+"Error=["+String(Error)+"]"+Char(Carriage return)
$msg:=$msg+"formula=["+Error formula+"]"+Char(Carriage return)
$msg:=$msg+"method=["+Error method+"]"+Char(Carriage return)
$msg:=$msg+"line=["+String(Error line)+"]"+Char(Carriage return)
$msg:=$msg+vSQL+Char(Carriage return)
JCL_file_Logout($msg; "ErrorLog.txt")