例外処理の付け方
javaを使って通信のプログラムを作成しています。
ホストAで送信データを作成し、そのデータをホストBに送信して、
ホストAが送信するのにかかった時間と、ホストBが受信するのにかかった時間を
計測するプログラムを作成しました。
送信と受信の処理を行うのですが、送信側では、write()でバッファに書き込んで、
fulsh()で書き込まれたバイトを出力ストリームに書き込みます。
受信側では、while((ch=in.read()) != -1)で送信データをすべて読み込ませます。
write()、fulsh()を使って送信し、read()で受信するのですが、
これらのメソッドが正常に動いたかどうかを調べたいのです。
ネットで方法を調べたのですが、try catchを使うことで例外処理が発生したら、
エラーを出力させることができることがわかりました。
もしurite(),fulsh(),read()が正常に起動しないならエラーを出したいのです。私なりに考えて以下のようにしました。
コードは以下のとおりです。送信部分、受信部分です。
送信側
int count = 0; // write()の回数
System.out.println("<データ送信処理>");
start = System.nanoTime(); // 計測開始時間
for (int i = 0; i < Data - 2; i++) {
try {
out.write(i);
count++;
} catch (IOException e) {
System.out.println(i + ":書き込みエラー");
}
}
try{
out.write('\\');
}catch(IOException e){
System.out.println("\\" + "書き込みエラー");
}
try{
out.write('s');
}catch(IOException e){
System.out.println("s" + "書き込みエラー");
}
count = count + 2;
out.flush();
stop = System.nanoTime(); // 計測終了時間
System.out.println("送信完了");
受信側
while (ch != -1) {
try{
ch = in.read();
}catch(IOException e){
System.out.println("読み込みエラー");
}
Count++;
if (ch == '\\') {
on = true;
} else if (on == true && (char) ch == 's') {
stopNs = System.nanoTime();
System.out.println("受信終了時間を確認");
break;
} else if (on == true && (char) ch != 's') {
on = false;
}
}
メソッドが正常に起動しない場合は、例外処理を行うということを
したいのですが、上の方法は正しいのでしょうか?
このようにして実行しても、「入力エラー」と言う表示はされません。
もしかしたら、ただ異常な動作が行われていないから、そういったエラーが
表示されないのかもと考えましたが、例外処理の書き方が違う可能性があると思い、
質問させていただきました。
どなたかアドバイスしていただけないでしょうか?