Unreachable code
Reports the code which is never reached according to data flow analysis. It can be the result of previous always-true or always-false condition, unreachable loop body or catch section. Usually (though not always) unreachable code is a consequence of a previous warning, so check inspection warnings form "Nullability and data flow problems", "Constant values", or "Redundant operation on empty container" to better understand the cause.
Example:
Note that this inspection relies on method contract inference. In particular, if you call a static or final method that always throws an exception, then the "always failing" contract will be inferred, and code after the method call will be considered unreachable. For example:
This may cause false-positives if any kind of code postprocessing is used, for example, if an annotation processor later replaces the method body with something useful. To avoid false-positive warnings, suppress the automatic contract inference with explicit @org.jetbrains.annotations.Contract annotation from org.jetbrains:annotations package:
Locating this inspection
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
UnreachableCode- Via Settings dialog
Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.
Inspection ID: UnreachableCode
New in 2024.1
Inspection options
Here you can find the description of settings available for the Unreachable code inspection, and the reference of their default values.
- Ignore trivial exit statements
Option ID:
ignoreTrivialReturnsDefault value:
Selected- Respect 'Constant value' inspection suppressions
Option ID:
respectConstantValueSuppressionDefault value:
Selected
Suppressing Inspection
You can suppress this inspection by placing the following comment marker before the code fragment where you no longer want messages from this inspection to appear:
More detailed instructions as well as other ways and options that you have can be found in the product documentation:
Inspection Details | |
|---|---|
By default bundled with: |