rspec/rules/S3518/python/rule.adoc

60 lines
1.1 KiB
Plaintext
Raw Normal View History

If the denominator to a division or modulo operation is zero it would result in a fatal error.
== Why is this an issue?
This is an issue because dividing by zero is a forbidden operation which leads to a fatal error.
=== What is the potential impact?
This issue can lead your program to an unexpected halt with all the inconveniences it entails.
== How to fix it
Make sure that zero never reaches the denominator.
=== Code examples
==== Noncompliant code example
[source,text,diff-id=1,diff-type=noncompliant]
----
def non_compliant():
z = 0
if (unknown()):
# ...
z = 4
else:
# ...
z = 1 / z
----
==== Compliant solution
[source,text,diff-id=1,diff-type=compliant]
----
def compliant():
z = 0
if (unknown()):
# ...
z = 4
else:
# ...
z = 1
z = 1 / z
----
=== How does this work?
By ensuring that for all the paths that can define the variable ++z++, when none assigns it zero, we are sure that the issue is fixed.
//=== Pitfalls
//=== Going the extra mile
//== Resources
//=== Documentation
//=== Articles & blog posts
//=== Conference presentations
//=== Standards