メソッド本体の実行を中途完了させる例外が発生するならば,メソッド呼出しの式でも例外が投げられるようにすることができる。コンストラクタを中途完了させる例外が発生したならば,クラスインスタンス生成式でも例外が投げられるようにすることができる。式の評価中に様々なリンク及び仮想計算機のエラーが発生するかもしれない。本来,そのようなエラーを予測及び処理するのは難しい。例外が発生するならば,評価の正常モードのすべての段階が完了する前に,一つ又はそれ以上の式の評価が終了する。そのような式は中途完了したと呼ぶ。"正常完了する"と"中途完了する"という言葉は文(14.1)の実行にも適用される。文は様々な理由で中途完了するが,例外が投げられるからとは限らない。式の評価が副式の評価を必要とするならば,副式の中途完了は常に即座に同じ理由でその式自身の中途完了を引き起こし,評価の正常モードのその後のすべての段階は実行されない。order),すなわち左から右に評価されることを保証する。コードがこの規定に依存しないことを推奨する。外側の演算のように,それぞれの式がせいぜい一つの副作用しか含まない時及び式を左から右に評価した結果,どの例外が起こるかにコードがまったく依存しない時,コードは通常はより明確になる。二項演算子の左辺オペランドは,右辺オペランドの部分が評価される前にすべて評価される。左辺オペランドが変数への代入を含み,右辺オペランドがその同じ変数の参照を含むならば,参照の値は代入が先に発生した事実を反映する。i;System.out.println(j);}}次のように表示する。表示するのは許されない。演算子が複合代入演算子(15.26.2)であるならば,左辺オペランドの評価は,左辺オペランドが指示する変数の記憶及び予想される結合した演算で使用するためにその変数の値を取得し保存することの両方を含む。exampleSystem.out.println(b);}}次のように表示する。設定しているからである。いう結果を生成するのは許されない。ANSI/ISO規格のCでは,これらの例のどちらも振る舞いが規定されていないことに注意すること。二項演算子の左辺オペランドの評価が中途完了すれば,右辺オペランドはまったく評価されない。here!");}}次のように表示する。例外を投げるからである。除く)が完全に評価されることを保証する。二項演算子の両オペランドが評価され,評価が正常完了した場合に限り,この例外が投げられる。Buffalo!");}}常に次のように表示する。Buffalo!しかし,次のように表示されない。呼出しが終了する前にゼロによる除算の例外の送信を含む除算演算のどの部分も実行されないからである。括弧及び優先順位に従う評価Javaプログラム言語の実装は,括弧により明示的に及び演算子優先順位により暗黙に指示される評価の順番に注意しなければならない。,(17.におけるスレッドの実行モデルを使用して)複数のスレッドで実行する場合でも,すべての可能な計算値において,置換式が値及び観測可能な副作用において同等であると証明することができない限り,ある実装が式をより都合のよい計算順序に書き直すために,結合則のような代数的同一性を利用してはいけない。浮動小数点計算の場合,この規則は無限大及び数字でない(NaN)値においても適用される。書き直すことはできない。両方がNaNならば,これらの式は異なった値をもつからである。数学的に結合性をもつ浮動小数点計算も計算論的には結合的でない。単純にそのような計算の順序を変えてはならない。書き直すのは正しくない。存在しうるからである。d);}}次のように表示する。Infinity1.6e+308なぜなら,最初の式はオーバフローするが,2番目はそうならないからである。対照的に,Javaプログラム言語においては,整数加算及び乗算はおそらく結合可能である。値を含む問題が発生しないと仮定する。どちらとして評価されても,常に同じ答えを生成する。そのコードの近くで起こるならば,賢いコンパイラはこの共通の副式を使用することができるかもしれない。引数リストにおける左から右への評価メソッド,コンストラクタ呼出し又はクラスインスタンス生成式において,複数の引数式が括弧内にコンマによって区切られて現れることができる。それぞれの引数式は,その右にあるどんな引数式よりも前に完全に評価される。c);}}この例は常に次のように表示する。最初の二つの引数が評価された後だからである。引数式の評価が中途完了するならば,それより右の引数式は一切評価されない。c;}}次のように表示する。代入が実行されないからである。幾つかの式に対する評価順序は,これらの一般的規則に完全にはあてはまらない。これらの式が,規定しなければならないような例外的な状況を時々生じさせることがあるからである。次の種類の式に対する評価順序の詳細な例を参照すること。一次式は最も単純な種類の式の大部分を含み,それ以外のすべて,すなわちリテラル,クラスリテラル,フィールドアクセス,メソッド呼出し及び配列アクセスは一次式によって構成される。括弧で括った式も,構文的に一次式として扱われる。字句リテラルリテラル(3.10)は固定された,不変の値を意味する。便宜上,3.10の次の生成規則を繰り返す。IntegerLiteralFloatingPointLiteralBooleanLiteralCharacterLiteralStringLiteralNullLiteralリテラルの型は,次のように決定される。