Yes, that's how @stemm said.
In the body , actions are simply separated and gives them order for evaluation. The compiler tells you that since E#ax > 2 has no side effects, it will never throw an exception, and its return value is ignored, and it will never affect execution.
However, in the guard mode , protective tests are detached, which all must succeed for the defense to succeed.
Use caution when viewing guards as normal expressions, which they conduct in different ways, for example, here. Guards also behave differently when they make mistakes. Therefore, when the guards look like expressions, they really are tests.
source share