Inconsistencies in @throws tags can increase costs

[nz_btn text="Cost" link="http://casthighlight.wpengine.com/category/product/indicators-methodology/cost/" target="_self" icon="icon-office" animate="false" animation_type="ghost" color="green" size="small" shape="rounded" type="normal" hover_normal="opacity" hover_ghost="fill"][nz_btn text="Software Agility" link="http://casthighlight.wpengine.com/software-resiliency/" target="_self" animate="false" animation_type="ghost" color="black" size="medium" shape="rounded" type="normal" hover_normal="fill" hover_ghost="fill" icon="icon-dashboard"][nz_btn text="Code Readability" target="_self" animate="false" animation_type="ghost" color="black" size="small" shape="rounded" type="ghost" hover_normal="fill" hover_ghost="screen" link="http://casthighlight.wpengine.com/category/product/indicators-methodology/code-insights/software-resiliency/code-reliability/" icon="icon-code"]

Inconsistencies in @throws tags can increase costs

This code insight searches all the function that throws functions without having a @throws tag. Verifies : 1 - that a @throws tag exists for a function that throws exceptions. 2 - the number of @throw tags and the number of throw tokens matches. 3 - the exception type. algo : Search all @throw tags in the documental comment of a function. Search all throw instruction in the function code. Checks that all exceptions thrown in the code whose type is known have a corresponding @throw tag. Once this check is done, those tags are removed from the list. Remaining tags are related to throw instructions on unknow type exception. For this remaining list of tags, check that there is at least one tag if it exists at least one throw instruction on an unknow type exception, and that there is not more tags than such throw instruction. Examples : throw new PHP_Exception1('Error'); throws a exception whose type is "PHP_Exception1" throw $this->callSomeFunction(); throws a exception whose type is unknown (due to  analyzer limitation).

Why you should care

Every function that throw exceptions must have a throw tag.  Try to reduce the number of function that throws exceptions without having a @throws tag.

Business Impacts

It is recommended to avoid these in order to ensure the code is more readable and cost effective.
[nz_btn text="Cost" target="_self" animate="false" animation_type="ghost" color="green" size="small" shape="rounded" type="normal" hover_normal="opacity" hover_ghost="fill" link="http://casthighlight.wpengine.com/category/product/indicators-methodology/innovation/" icon="icon-office"]

CAST recommendations

References

About CAST and Highlight’s Code Insights

Over the last 25 years, CAST has leveraged unique knowledge on software quality measurement by analyzing thousands of applications and billions of lines of code. Based on this experience and community standards on programming best practices, Highlight implements hundreds of code insights across 15+ technologies to calculate health factors of a software.
[nz_btn text="See features" link="http://casthighlight.wpengine.com/outputs-analytics/" target="_self" icon="icon-stats" animate="false" animation_type="ghost" color="black" size="small" shape="rounded" type="normal" hover_normal="fill" hover_ghost="fill"][nz_btn text="How it works" link="http://casthighlight.wpengine.com/how-it-works/" target="_self" icon="icon-cog" animate="false" animation_type="ghost" color="black" size="small" shape="rounded" type="ghost" hover_normal="fill" hover_ghost="fill"] c
For reference only. For the complete details please refer the original article
https://doc.casthighlight.com/alt_unusedthrowstags-avoid-function-throwing-exceptions-and-not-having-a-throws-tag-php/
Have more questions? Submit a request

Comments

Powered by Zendesk