Developer

【はじめてのJava】仕様違反【プログラムの作り方編】
2020.09.25
Lv1

【はじめてのJava】仕様違反【プログラムの作り方編】

はじめてのJava

このシリーズでは、初めてJavaやプログラミングを勉強する方向けに、Javaによるプログラミングの基礎を説明していきます。
目標レベルは、Javaの資格試験の一つである「Oracle Certified Java Programmer, Silver」(通称Java Silver)に合格できる程度の知識の習得です。
はじめてJavaやプログラムに触れる方にもできるだけわかりやすい解説を心がけていきます。


プログラムの作り方編

プログラムの作成と実行の記事ではソースコードを作成、保存ソースコードのコンパイルプログラムの実行を行いました。
Javaの仕組みの記事ではJVMmainメソッドSystem.out.println()について説明しました。

今回は開発時のコツの1つとして、プログラムが上手く作成・実行できないときの原因と対処法を解説していきます。


開発時の注意点

ここではプログラム作成時のコツを見ていきます。プログラムはコツをつかむことで、作成にかかる時間が短くなったり、動かした際の問題点が起こりづらくなったりします。

今回はプログラムが上手く動かないときののポイントを紹介します。項目が多いので、一度に全部理解しきれなくて大丈夫です。不明点はあとから見返して少しずつ理解を深めていただければと思います。

Javaの試験を受ける場合は、別のシリーズとして執筆予定の例外処理シリーズを読んだ段階で「コンパイルエラー」「実行時例外」の2つが意識できれば大丈夫です。

なお、説明中に「Exception系」「RuntimeException系」「Error系」という言葉が出てきますが、これは便宜上筆者が付けた名称ですのでjavaで正式に使われている言葉ではありません。ご注意ください。


目次


仕様違反

仕様違反とはプログラムを実行しても問題が発生して止まることは無いが、もともとの想定と異なる動きをしている状態のことです。コンパイルや実行の際に画面上にはエラーは出ませんが、実際のプログラムの動作におかしな点がある状態です。

例えるなら、JVMは台本(ソースコード)通りに動作してるが、そもそも台本を書き間違えたために「セリフが違う!!」となっている状態です。


仕様違反の例

以下は仕様違反の例です。仕様としては数字の足し算が行われてその結果が表示されることを想定しています。

しかしプログラムを実行すると 仕様と異なる動作 をしています。

仕様違反の場合はエラーメッセージは出てきません。そのため仕様違反が起こっていることそのものに気づかないこともあります。

仕様違反の原因はソースコードの中に仕様と異なる動作を行う部分があることが原因です。しかし、エラーメッセージがないため原因個所の特定に苦労することも多いです。

実際の開発では、テスト工程を通じて仕様違反がないかどうかの確認をします。


対処方法

仕様違反の場合はソースコードの中のどこに原因があるのか調査してソースコードを修正します。
修正後保存と再コンパイルを忘れないようにしてください。


ポイント

「仕様違反」とはプログラムが想定と異なる動作で動いている状態。
例えるなら台本(ソースコード)に従った動作をしているのに、そもそも台本に間違いがあったため「セリフが違う」と言われている状態。
仕様違反は見つかりづらく、見つかっても原因個所の特定に時間がかかることも多い。


プログラムの作り方編・次回の内容

これでJavaのプログラムの作成方法と実行方法が分かりました。プログラムの作り方編・次回はソースコードを読む際に必要な「ブロック」の見方や、ソースコードの作成時に便利な「コメント」について説明していきます。


はじめてのJavaシリーズの記事一覧はこちら
シリーズ全記事一覧
環境構築編
プログラムの作り方編
データ型と変数編


java 11 の練習問題一覧はこちら
はじめてのJavaシリーズの練習問題一覧はこちら