org.sonar.l10n.delphi.rules.community-delphi.BeginEndRequired.html Maven / Gradle / Ivy
The newest version!
Why is this an issue?
Code in which all blocks are fenced by begin
and end
is simple and
modular to understand. All blocks should use begin
..end
, except for
repeat
and case
blocks.
While most Delphi structures allow begin
and end
to be omitted when
there is only a single statement in the block, doing so often makes code more error-prone and
difficult to read.
Also, if another statement is added at a later stage and begin
and
end
are not added, the new statement will be unexpectedly outside of the block.
While the code below may seem correct at a glance, the Exit
will always be
encountered and Foo.Bar
will never be run.
if not Assigned(Foo) then
Writeln('Foo not assigned!');
Exit;
Foo.Bar;
How to fix it
Surround the statement with begin
and end
:
if not Assigned(MyObj) then
Exit;
if not Assigned(MyObj) then
begin
Exit;
end;
© 2015 - 2024 Weber Informatics LLC | Privacy Policy