Recent

Author Topic: Package GetText hides exceptions  (Read 638 times)

AlexTP

  • Hero Member
  • *****
  • Posts: 2287
    • UVviewsoft
Package GetText hides exceptions
« on: August 29, 2023, 05:05:20 pm »
packages/fcl-base/src/gettext.pp
Code: Pascal  [Select][+][-]
  1.   if fileexists(fn) then
  2.     begin
  3.       try
  4.         mo := TMOFile.Create(fn);
  5.         try
  6.           TranslateResourceStrings(mo);
  7.         finally
  8.           mo.Free;
  9.         end;
  10.       except
  11.         on e: Exception do;
  12.       end;
  13.     end;
  14.   lang := Copy(lang, 1, 5);
  15.   fn:=Format(AFilename, [lang]);
  16.   if fileexists(fn) then
  17.     begin
  18.       try
  19.         mo := TMOFile.Create(Format(AFilename, [lang]));
  20.         try
  21.           TranslateResourceStrings(mo);
  22.         finally
  23.           mo.Free;
  24.         end;
  25.       except
  26.         on e: Exception do;
  27.       end;
  28.     end;
  29. end;    

Here you see 2 places where try/except just hides all errors. Not good. E.g. we may have AV there, it will be hidden. Or some logic error.

Totally 4 places of hidden exceptions:

2 at TranslateResourceStrings
2 at TranslateUnitResourceStrings
« Last Edit: August 29, 2023, 05:48:49 pm by AlexTP »

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1104
Re: Package GetText hides exceptions
« Reply #1 on: September 03, 2023, 05:10:34 am »
packages/fcl-base/src/gettext.pp
Code: Pascal  [Select][+][-]
  1.   if fileexists(fn) then
  2.     begin
  3.       try
  4.         mo := TMOFile.Create(fn);
  5.         try
  6.           TranslateResourceStrings(mo);
  7.         finally
  8.           mo.Free;
  9.         end;
  10.       except
  11.         on e: Exception do;
  12.       end;
  13.     end;
  14.   lang := Copy(lang, 1, 5);
  15.   fn:=Format(AFilename, [lang]);
  16.   if fileexists(fn) then
  17.     begin
  18.       try
  19.         mo := TMOFile.Create(Format(AFilename, [lang]));
  20.         try
  21.           TranslateResourceStrings(mo);
  22.         finally
  23.           mo.Free;
  24.         end;
  25.       except
  26.         on e: Exception do;
  27.       end;
  28.     end;
  29. end;
Here you see 2 places where try/except just hides all errors. Not good. E.g. we may have AV there, it will be hidden. Or some logic error.

Totally 4 places of hidden exceptions:

2 at TranslateResourceStrings
2 at TranslateUnitResourceStrings
It seems like a bug to me.

Can you file a Lazarus bug report?
https://gitlab.com/freepascal.org/lazarus/lazarus/-/issues

AlexTP

  • Hero Member
  • *****
  • Posts: 2287
    • UVviewsoft

valdir.marcos

  • Hero Member
  • *****
  • Posts: 1104
Re: Package GetText hides exceptions
« Reply #3 on: September 03, 2023, 07:01:55 pm »

AlexTP

  • Hero Member
  • *****
  • Posts: 2287
    • UVviewsoft
Re: Package GetText hides exceptions
« Reply #4 on: September 03, 2023, 07:13:07 pm »
My apologies for wrong place.

 

TinyPortal © 2005-2018