Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
222 views
in Technique[技术] by (71.8m points)

How to recognize specific exception in Delphi

Most of the time I'm relying on the ClassName and the Message of the exception to decide what to do in case of an error:

      AddDebugMessage('GetExcelValues: Exception '+e.ClassName+' with message '+e.Message+' while getting values from sheet '+TaskRecs[TaskNr].SheetName,Error)

But now I'm working with Excel OLE and Exception messages seem to have been translated (into Dutch in my case). So looking at the Exception message seems to be out of the question.

Is there a better way to find out what exception is being raised?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Many exception classes have more members to help describe the error. For Excel (or other OLE handling), you can get the error code like this:

try
    // Excel handling removed 
except
    on E: EOleException do begin
        Memo1.Lines.Add(E.Message);
        Memo1.Lines.Add('Error code 0x' + IntToHex(E.ErrorCode, 8));
        Exit;
    end;
end;

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...