include::../description.adoc[]

== Noncompliant Code Example

----
if (condition1) {
  do_something();
} elseif (condition2) {
  do_something_else();
} 
----

== Compliant Solution

----
if (condition1) {
  do_something();
} elseif (condition2) {
  do_something_else();
} else {
  throw new InvalidArgumentException('message');
}
----

== Exceptions

When all branches of an ``++if-elseif++`` end with ``++return++``, ``++break++``, ``++continue++`` or ``++throw++``, the code that comes after the ``++if++`` implicitly behaves as if it was in an ``++else++`` clause. This rule will therefore ignore that case.


ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::../message.adoc[]

'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]
endif::env-github,rspecator-view[]
