DateUtils.TryISO8601ToDate('8', Result)
生成異常。但它是嘗試 !!!它的任務是嘗試沒有拋出任何例外。TryISO8601ToDate生成異常
問題不在於Delphi IDE對此異常做出反應。問題是「Try」函數產生這樣的異常而不是返回true/false。
DateUtils.TryISO8601ToDate('8', Result)
生成異常。但它是嘗試 !!!它的任務是嘗試沒有拋出任何例外。TryISO8601ToDate生成異常
問題不在於Delphi IDE對此異常做出反應。問題是「Try」函數產生這樣的異常而不是返回true/false。
我想你可能需要調整你的IDE調試器選項。
在IDE中,轉至工具|選項和調試器選項下的語言例外選項卡上英巴卡迪諾調試器,取消選中Notify on Language Exceptions
框。
選中該複選框後,調試器將在您的(或RTL)異常處理執行之前停止在IDE中的執行。它彈出一個詢問你是否想要中斷執行或繼續。如果選擇後者,代碼中的異常處理程序將執行。
更新 Tbh,隨着你q的更新,我根本不清楚你說的是什麼問題。以下哪部分代碼的行爲不符合您的期望/如何?
procedure TForm1.TestISODates;
var
S : String;
DT : TDateTime;
begin
DT := Now;
S := DateToISO8601(DT, False);
Caption := S;
if TryISO8601ToDate(S, DT, False) then
Caption := 'OK';
S := 'banana';
if TryISO8601ToDate(S, DT, False) then
Caption := 'OK'
else
Caption := S + ' not ok';
end;
有點兒跛,他們執行'TryISO8601ToDate'上ISO8601ToDate'的'頂部,而不是周圍的其他方法.....馬虎,並指示在圖書館開發商缺乏凝聚力和經驗。老頭在做代碼審查,哪裏會立即看到這樣的錯誤? –