Transcript 第 11回

http://www.xmlpro.org/
↑ 講義資料のダウンロードは ↑
ブログの「講義資料」から
第11回 例外
参考書:スッキリわかるJava入門 第2版
番外編 JavaAPI
参考書:スッキリわかるJava入門 第2版
APIとは
Application Programing Interfaceの略
プログラミングの際に使用できる命令や規約、関数等の集合
例:JavaAPI , TwitterAPI , Riot Games API など
JavaAPIの使い方①
FQCN(Full Qualified Class Name)を用いる
完全限定クラス名とも呼ぶ
実演
JavaAPIの使い方②
import文を用いる
importしたクラスのFQCNは、そのソースコード内でなら省くことが可能
import パッケージ名.クラス名;
ただし、package文より後でクラスよりも前に書くこと
実演
java.langパッケージ
Javaに欠かせない、重要なクラス群
import文を記述しなくても、自動的にimportされる
実演
APIリファレンス
そのAPIの機能や仕様などを解説したもの
第11回 例外
参考書:スッキリわかるJava入門 第2版
目次
• エラーの種類と対応策
• 例外クラスとその種類
• さまざまな例外処理
• 例外の伝播
• 例外を発生させる
• オリジナル例外クラス
• 演習
目次
• エラーの種類と対応策
• 例外クラスとその種類
• さまざまな例外処理
• 例外の伝播
• 例外を発生させる
• オリジナル例外クラス
• 演習
エラーの種類
・Syntax Error
文法エラー。「セミコロンの付け忘れ」など。
・Runtime Error
実行時エラー。「0での割り算」など。
・Logic Error
論理エラー。「電卓ソフトの計算結果がおかしい」など。
エラーの種類
・Syntax Error
文法エラー。「セミコロンの付け忘れ」など。
・Runtime Error
実行時エラー。「0での割り算」など。
・Logic Error
論理エラー。「電卓ソフトの計算結果がおかしい」など。
エラーの種類
・Syntax Error
文法エラー。「セミコロンの付け忘れ」など。
・Runtime Error
実行時エラー。「0での割り算」など。
・Logic Error
論理エラー。「電卓ソフトの計算結果がおかしい」など。
エラーの対応策
例外的状況に備えて、対策となる処理を書いておく
そのような処理を例外処理と呼ぶ
try-catch文
try{
例外が起こる可能性がある処理
} catch(例外クラス インスタンス名) {
例外が起きた場合の処理
}
実演
実演
実演
目次
• エラーの種類と対応策
• 例外クラスとその種類
• さまざまな例外処理
• 例外の伝播
• 例外を発生させる
• オリジナル例外クラス
• 演習
例外クラスの継承階層
Throwable
Exception
Error
Exception系例外
Error系例外
RuntimeException
RuntimeException系例外
例外の種類
・Error系例外
回復の見込みがない致命的な状況
・Exception系例外
発生を想定して例外処理を書いておく必要がある状況
・RuntimeException系例外
必ずしも例外処理を書いておく必要はない状況
例外クラスの活用法
public String getMessage()
エラーメッセージ(例外の解説文)を取得する
public void printStackTrace()
スタックトレース(例外が発生した経緯)を出力する
実演
実演
発生する例外の調べ方①
意図的に例外を起こしてみる
実演
実演
発生する例外の調べ方②
リファレンスを読む
FileWriterの場合
FileWriterの場合
目次
• エラーの種類と対応策
• 例外クラスとその種類
• さまざまな例外処理
• 例外の伝播
• 例外を発生させる
• オリジナル例外クラス
• 演習
try-catchの基本構文
try{
例外が起こる可能性がある処理
} catch(例外クラス インスタンス名) {
例外が起きた場合の処理
}
複数の例外をcatchする
try{
例外が起こる可能性がある処理
} catch(例外クラス① インスタンス名) {
例外①が起きた場合の処理
} catch(例外クラス② インスタンス名) {
例外②が起きた場合の処理
}
finallyブロック
try{
例外が起こる可能性がある処理
} catch(例外クラス インスタンス名) {
例外が起きた場合の処理
} finally {
例外の有無に関わらず、必ず実行する処理
}
実演
実演
実演
実演
目次
• エラーの種類と対応策
• 例外クラスとその種類
• さまざまな例外処理
• 例外の伝播
• 例外を発生させる
• オリジナル例外クラス
• 演習
例外の伝播
throws
修飾子 戻り値 メソッド名(引数リスト)
throws 例外クラス1,例外クラス2,・・・{
例外が発生する可能性がある処理
}
実演
実演
FileWriterの場合(再掲)
実演
目次
• エラーの種類と対応策
• 例外クラスとその種類
• さまざまな例外処理
• 例外の伝播
• 例外を発生させる
• オリジナル例外クラス
• 演習
例外を「投げる」
throw 例外インスタンス;
または
throw new 例外クラス名(“エラーメッセージ”);
実演
実演
実演
目次
• エラーの種類と対応策
• 例外クラスとその種類
• さまざまな例外処理
• 例外の伝播
• 例外を発生させる
• オリジナル例外クラス
• 演習
実演
実演
実演
目次
• エラーの種類と対応策
• 例外クラスとその種類
• さまざまな例外処理
• 例外の伝播
• 例外を発生させる
• オリジナル例外クラス
• 演習
演習①
FileReaderクラスを使って、ファイルの読み込みを行おうとするプログ
ラムを作成せよ。その際、ファイルが読み込めないことによるエラーが
発生してしまう状態でも構わない。
演習②
Exceptionクラスを継承した、新しい例外クラスを作成せよ。
演習③
演習②で作成した例外が発生するメソッドをMainクラス内に作成し、
mainメソッド内で呼び出せ。