-
前期からの変更点
- 課題説明は「課題概要」のみで十分です。
- 今回のレポート4についても「最大3ページ」に収めるようにして下さい。
- ソースファイルはGitHubで確認できますので、レポートに全コードコピペ掲載する必要はありません。特に工夫した点のみを掲載した上で解説・考察しよう。
-
<目次>
残念ながら教科書では例外処理のことを扱っていない。例外が発生するコードとAPIを通して、例外処理に慣れよう。
- 仕様
- IntelliJで新規プロジェクトを作成せよ。プロジェクト名は「Report4」とする。
- 次のようなプログラムを作成・実行し、実行時エラーを発生させよ。
- 条件1: String型変数 str を宣言し、初期値として null を代入する。
- 条件2: str.length() の内容を表示しようとする。
- 次のようなプログラムを作成・実行し、実行時エラーを発生させよ。
- IntelliJで新規プロジェクトを作成せよ。プロジェクト名は「Report4」とする。
- 動作確認、git+githubの利用
- 上記を満足するコードを実行すると、str.length()の内容を表示しようとしている行で例外「java.lang.NullPointerException」が発生するはずである。
- java.lang.NullPointerExceptionが発生していることを確認できたら、
- (1) IntelliJプロジェクトをGit管理にし、add & commit せよ。
- (2) GitHubにプロジェクト名と同じリポジトリを作成し、pushせよ。
- java.lang.NullPointerExceptionが発生していることを確認できたら、
- 上記を満足するコードを実行すると、str.length()の内容を表示しようとしている行で例外「java.lang.NullPointerException」が発生するはずである。
- レポート報告事項
- ステップ1に関しては、pushしたリポジトリURL(作業用URL)を報告するだけで良い。
- 仕様
- try-catch構文を用いて、以下の通り例外処理せよ。
- 条件1: 「NullPointerException」を catch せよ。
- 条件2: NullPointerExceptionが発生したことを標準出力せよ。出力文は、NullPointerExceptionが発生したことが分かる内容であれば自由とする。
- 条件3: 例外インスタンスを用いて、getMessage()を出力せよ。
- try-catch構文を用いて、以下の通り例外処理せよ。
- 動作確認、git+githubの利用
- 正しく例外処理を記述できたならば、条件2と条件3の内容が標準出力に出力されるはずである。
- このことを確認できたら、
- (1) IntelliJプロジェクトで add & commit せよ。
- (2) GitHubに pushせよ。
- このことを確認できたら、
- 想定: 追加コードは数行程度のはず。
- 正しく例外処理を記述できたならば、条件2と条件3の内容が標準出力に出力されるはずである。
- レポート報告事項
- ステップ2に関しては、実行結果を報告せよ。実行結果には、条件2と条件3の出力が含まれているはずである。
- ステップ1&2で記述したコードは削除して構わない。(pushされてるなら、githubに残っている)
- いきなり削除するのが怖いならば、コメントアウトしてからステップ3に取り組もう。
- 仕様
- 条件1: String型の変数strに、文字列"百二十三"を代入せよ。
- 条件2: Integer.parseInt(String s)メソッドを用いて、int型変数valueに代入するコードを記述せよ。
- 動作確認、git+githubの利用
- 正しく記述できたならば、parseInt()メソッド実行時に例外が発生するはずである。
- このこと(例外発生)を確認できたら、
- (1) IntelliJプロジェクトで add & commit せよ。
- (2) GitHubに pushせよ。
- このこと(例外発生)を確認できたら、
- 正しく記述できたならば、parseInt()メソッド実行時に例外が発生するはずである。
- レポート報告事項
- Integer.parseInt()メソッドと発生した例外について、APIリファレンスで調べよ。レポートには、下記を含めること。
- (1) Integer.parseInt() メソッドの定義のコピペ。(説明文とparameters, returns, throwsの合計4項目を含むこと)
- (2) 上記コピペ文を読み、項目毎に分かることを解説せよ。
- (3) 例外の一つに「NumberFormatException」があるはずだ。そのリンクを辿り、NumberFormatExceptionクラスのスーパークラスを探せ。レポートにはそのスーパークラスの名称と、そのクラスの概要説明文(クラス名とConstructor Summaryの間にあるはず)をコピペし、分かる範囲で解説せよ。
- Integer.parseInt()メソッドと発生した例外について、APIリファレンスで調べよ。レポートには、下記を含めること。
- ペアや友人らと話し合って取り組んで構わないが、コード解説を加えるなど「自分自身の報告書」となるように取り組むこと。試して分かったこと、自身で解決できなかった部分等についてどう取り組んだか、といった過程がわかるように示すこと。(考えを図表や文章を駆使して表現して報告する練習です)
- レポート作成は好きなツール(ソフトウェア)を使って構わない。ただし下記を含めること。
- タイトル
- 今回は「プログラミング2、レポート課題4: 「例外に慣れよう」」。
- 提出日: yyyy-mm-dd
- 報告者: 学籍番号、氏名
- 複数人で相談しながらやった場合、相談者らを「協力者: 学籍番号、氏名」として示そう。
- 課題説明(概要のみでOK)
- 結果と考察
- 課題への取り組みを通し、課題の意義、課題から分かったこと、今後の展望などを述べる。失敗やつまづきがあれば、それらについての失敗分析を含めること。
- 参考リンク: 実験レポートの書き方
- その他
- 通常は感想等をレポートには含めませんが、練習なので課題に取り組みながら何か感じたこと、悩んでいること等、書きたいことがあれば自由に書いてください。(なければ省略OK)
- タイトル
- 提出物は「レポート」の1点である。
- レポートは電子ファイルで提出するものとする。
- 提出先:
- Google ドキュメントのreport4。
- 締切: 調整中。