2014-03-27 36 views
0

我想測試一些正在進行的AppServer錯誤處理。但是,爲了測試它,我希望num-messages> = 2時發生運行時錯誤。如何生成這樣的多重錯誤?提高正在進行的幾個運行時錯誤4GL


這裏是什麼,我試圖做

IF ERROR-STATUS:ERROR THEN  
    LogToAppserver(). 

CATCH e AS Progress.Lang.Error : 
    LogToAppserver(e). 
END CATCH. 

其中LogToAppserver看起來像

METHOD PRIVATE VOID LogToAppserver(): 

    DEFINE VARIABLE locNumErrors AS INTEGER NO-UNDO. 

    locNumErrors = ERROR-STATUS:NUM-MESSAGES. 

    DO WHILE locNumErrors > 0: 
     MESSAGE ERROR-STATUS:GET-MESSAGE (locNumErrors). 
     locNumErrors = locNumErrors - 1. 
    END. 

    RETURN. 

END METHOD. 

METHOD PRIVATE VOID LogToAppserver(INPUT iError AS Progress.Lang.Error): 

    DEFINE VARIABLE locNumErrors AS INTEGER NO-UNDO. 

    locNumErrors = iError:NumMessages. 

    DO WHILE locNumErrors >0: 

     MESSAGE iError:GetMessage(locNumErrors). 

     locNumErrors = locNumErrors - 1. 

    END. 

    RETURN. 

END METHOD. 
+0

爲什麼你需要> = 2個錯誤信息?只要代碼拋出一個錯誤,那應該足以測試你的代碼。 –

+0

爲什麼不創建一個Progress.Lang.AppError,用AddMessage(CHAR,INT)方法添加一些消息並拋出它? –

+0

@TimKuehn這是問題的問題,代碼只是旨在顯示我試圖做的事情。也許你知道一種在4GL或ABL中產生這種多重錯誤的方法? –

回答

3

試試這個代碼一些樣品

DEF VAR h AS HANDLE NO-UNDO.  

CREATE SERVER h.     
h:CONNECT("") NO-ERROR.   
DISPLAY ERROR-STATUS:num-messages. 

它應該給2條消息。

+0

這就是我所尋找的,謝謝。 –