界: Code Quality
コードの質が低いと、予測できない動作につながります。ユーザーの視点には、それがしばしば使い勝手の悪さとなって現れます。攻撃者にとっては、予期せぬ方法でシステムにストレスを与える機会となります。
Dead Code
Abstract
このステートメントが実行されることはありません。
Explanation
このステートメントは、周辺のコードによって実行されてないようになっています。
例: 2 つ目の
例: 2 つ目の
if
ステートメントで条件が満たされることはありません。変数 s
には NULL 以外の値が求められていますが、一方で、s
に NULL 以外の値を割り当てることができるパスには、return
ステートメントが記述されています。
String s = null;
if (b) {
s = "Yes";
return;
}
if (s != null) {
Dead();
}
desc.internal.cpp.dead_code
Abstract
関数が効果のないコードを定義しています。
Explanation
Solidity では、開発者は効果のないコードを作成することができます。これにより、予期しない動作が発生したり、意図した動作が実行されないコードが生まれる可能性があります。
例 1: 次のコードは、
例 1: 次のコードは、
msg.sender
の残高を更新しようとしますが、=
の代わりに ==
を使用します。これには何の効果もありません。
function deposit(uint amount) public payable {
require(msg.value == amount, 'incorrect amount');
balance[msg.sender] == amount;
}
desc.structural.solidity.swc135