package z_sample.lec.s0140;
import java.io.FileReader;
import java.io.IOException;
import jp.avaj.lib.debug.L;
/** 例外処置の仕方のサンプル */
class ExceptionTreatment {
public static void main(String[] args) {
L.phead("例外処置の仕方のサンプル");
try {
method0();
try {
// 当メソッドは例外を発生するので、
// この後のメソッドをテストするためtryをする
method1();
}
catch(Exception ex) {
ex.printStackTrace();
}
try {
// 当メソッドは実行時例外を発生するので、
// この後のメソッドをテストするためtryをする
method2();
}
catch(Exception ex) {
ex.printStackTrace();
}
method3();
}
catch(Exception ex) {
// 例外が発生した時に必要な処理を記述する
// サンプルとしてスタックトレースを表示する
ex.printStackTrace();
}
finally {
// 処理なし
}
L.phead("終了 - 例外処置の仕方のサンプル");
}
/** 例外をcatchで処理するメソッド */
public static void method0() {
//
FileReader fr = null;
try {
// 存在しないファイルを指定してわざと例外を発生させる
fr = new FileReader("ZZZ.txt");
// frを使用する処理 - サンプルなので以下は省略
}
catch(IOException ex) {
// 例外が発生した時に必要な処理を記述する
// サンプルとしてスタックトレースを表示する
ex.printStackTrace();
}
finally {
// ファイルをクローズする
// 注、クローズ処理は絶対にfinallyの中でやること
if (fr != null) {
// クローズ処理はnull判定をした上で行うのが常識
try {
// クロース処理自体も例外を発生するかもしれないのでtryする
fr.close();
}
catch(Exception ex) {
// クローズで例外がはっせいしたら、ほとんど手の打ちようがない
// 他に間違いがあるはず
ex.printStackTrace();
}
}
}
}
/**
* 例外を上位にthrowするサンプル
* 発生するかもしれない例外をthrowsに記述する必要がある
*/
public static void method1() throws IOException {
FileReader fr = null;
// 例外を上位にthrowする場合は必ずしも try する必要はない
// しかし、この場合は、finallyでクローズ処理をする必要があるのでtryする
try {
// 存在しないファイルを指定してわざと例外を発生させる
fr = new FileReader("ZZZ.txt");
}
// 例外を上位にthrowするのでcatchは記述しない
finally {
if (fr != null) {
// クローズで発生す例外も上位にthrowする
fr.close();
}
}
}
/**
* 実行時例外(RuntimeException)を発生するサンプル
*/
public static void method2() {
String str = "aaa";
// この文字列をintに変換する
// 実際には変換できないのでRuntimeExceptionが発生する
// RuntimeExceptionは tryやthrowをしなくてもコンパイルエラーにならない
int i = Integer.parseInt(str);
L.p(i);
}
/**
* 実行時例外(RuntimeException)を明示的に処理するサンプル
*/
public static void method3() {
String str = "aaa";
int i;
try {
// この文字列をintに変換する
// 実際には変換できないのでRuntimeExceptionが発生する
// RuntimeExceptionは tryやthrowをしなくてもコンパイルエラーにならない
i = Integer.parseInt(str);
}
catch(Exception ex) {
// strが数値に変換できない場合は 0 とみなす
i = 0;
}
}
}
//
//==
// Java 例外の処置
// http://blogs.yahoo.co.jp/artery2020/39982891.html
//・目次 - Java 例外処理
// http://blogs.yahoo.co.jp/artery2020/39982881.html
//・目次 - Java言語プログラミング入門
// http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
// http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
// http://blogs.yahoo.co.jp/artery2020/39657784.html
//== ended.
import java.io.FileReader;
import java.io.IOException;
import jp.avaj.lib.debug.L;
/** 例外処置の仕方のサンプル */
class ExceptionTreatment {
public static void main(String[] args) {
L.phead("例外処置の仕方のサンプル");
try {
method0();
try {
// 当メソッドは例外を発生するので、
// この後のメソッドをテストするためtryをする
method1();
}
catch(Exception ex) {
ex.printStackTrace();
}
try {
// 当メソッドは実行時例外を発生するので、
// この後のメソッドをテストするためtryをする
method2();
}
catch(Exception ex) {
ex.printStackTrace();
}
method3();
}
catch(Exception ex) {
// 例外が発生した時に必要な処理を記述する
// サンプルとしてスタックトレースを表示する
ex.printStackTrace();
}
finally {
// 処理なし
}
L.phead("終了 - 例外処置の仕方のサンプル");
}
/** 例外をcatchで処理するメソッド */
public static void method0() {
//
FileReader fr = null;
try {
// 存在しないファイルを指定してわざと例外を発生させる
fr = new FileReader("ZZZ.txt");
// frを使用する処理 - サンプルなので以下は省略
}
catch(IOException ex) {
// 例外が発生した時に必要な処理を記述する
// サンプルとしてスタックトレースを表示する
ex.printStackTrace();
}
finally {
// ファイルをクローズする
// 注、クローズ処理は絶対にfinallyの中でやること
if (fr != null) {
// クローズ処理はnull判定をした上で行うのが常識
try {
// クロース処理自体も例外を発生するかもしれないのでtryする
fr.close();
}
catch(Exception ex) {
// クローズで例外がはっせいしたら、ほとんど手の打ちようがない
// 他に間違いがあるはず
ex.printStackTrace();
}
}
}
}
/**
* 例外を上位にthrowするサンプル
* 発生するかもしれない例外をthrowsに記述する必要がある
*/
public static void method1() throws IOException {
FileReader fr = null;
// 例外を上位にthrowする場合は必ずしも try する必要はない
// しかし、この場合は、finallyでクローズ処理をする必要があるのでtryする
try {
// 存在しないファイルを指定してわざと例外を発生させる
fr = new FileReader("ZZZ.txt");
}
// 例外を上位にthrowするのでcatchは記述しない
finally {
if (fr != null) {
// クローズで発生す例外も上位にthrowする
fr.close();
}
}
}
/**
* 実行時例外(RuntimeException)を発生するサンプル
*/
public static void method2() {
String str = "aaa";
// この文字列をintに変換する
// 実際には変換できないのでRuntimeExceptionが発生する
// RuntimeExceptionは tryやthrowをしなくてもコンパイルエラーにならない
int i = Integer.parseInt(str);
L.p(i);
}
/**
* 実行時例外(RuntimeException)を明示的に処理するサンプル
*/
public static void method3() {
String str = "aaa";
int i;
try {
// この文字列をintに変換する
// 実際には変換できないのでRuntimeExceptionが発生する
// RuntimeExceptionは tryやthrowをしなくてもコンパイルエラーにならない
i = Integer.parseInt(str);
}
catch(Exception ex) {
// strが数値に変換できない場合は 0 とみなす
i = 0;
}
}
}
//
//==
// Java 例外の処置
// http://blogs.yahoo.co.jp/artery2020/39982891.html
//・目次 - Java 例外処理
// http://blogs.yahoo.co.jp/artery2020/39982881.html
//・目次 - Java言語プログラミング入門
// http://blogs.yahoo.co.jp/artery2020/39975776.html
//・目次 - ビジネスパーソンの常識と非常識
// http://blogs.yahoo.co.jp/artery2020/39728331.html
//・目次 - 論理・発想・思考についての考察と鍛え方
// http://blogs.yahoo.co.jp/artery2020/39657784.html
//== ended.