CodeCop Warning AA0231
StrSubstNo or string concatenation must not be used as a parameter in the Error method.
Description
The data classification context will be lost when using the StrSubstNo method or string concatenation as a parameter in the Error method. Instead use the ability of the Error method to insert values into the string with placeholders.
Reason for the rule
All error messages are logged into telemetry and we do not allow adding customer data into telemetry. So, all errors that have a textconst
as the first argument actually log the textconst
in telemetry, this greatly increases the ability to resolve errors found in telemetry. If StrSubstNo
or string concatenation is used as first argument the data classification context is lost and no message text is logged in telemetry.
Bad code example
var
ErrorMsg: Label 'Customer %1 has incorrect email', Comment = '%1 = Customer No.';
local procedure MyProcedure()
begin
Error(StrSubstNo(ErrorMsg, Customer."No.");
end;
var
Text000Err: Label 'There are no planning lines to make orders for. ';
Text007Err: Label 'This template and worksheet are currently active. ';
local procedure MyProcedure()
begin
Error(Text000Err + Text007Err);
end;
Good code example
var
ErrorMsg: Label 'Customer %1 has incorrect email', Comment = '%1 = Customer No.';
local procedure MyProcedure()
begin
Error(ErrorMsg, Customer."No.");
end;
var
ErrorMsg: Label 'There are no planning lines to make orders for. This template and worksheet are currently active. ';
local procedure MyProcedure()
begin
Error(ErrorMsg);
end;
Good and bad practices for fixing the rule
Use the ability of the Error method to insert values (expressions) into the string that has a placeholder.
See Also
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示