※ ChatGPTを利用し、要約された質問です(原文:「IOException は対応する try 文の本体ではスローされません。」というエラー。)
IOException は対応する try 文の本体ではスローされません
このQ&Aのポイント
PrintWriterクラスのcloseメソッドは、Closableインターフェースのcloseとwriterクラスのcloseと同じ定義だと考えていたのですが、きっとIOExceptionが発生すると考えていたのですが・・・違うのでしょうか?
Finallyの中にtryを書くと何か問題が起こるのでしょうか?
ソースをそのまま書くのは気が引けるのですが、どうか教えて頂けないでしょうか?
「IOException は対応する try 文の本体ではスローされません。」というエラー。
次のようなクラスを作成したのですが、表題のようなエラーが出てしまいます。
PrintWriterクラスのcloseメソッドは、
Closableインターフェースのcloseと
witerクラスのcloseと同じ定義だと考えていたので、きっとIOExceptionが発生すると考えていたのですが・・・違うのでしょうか?
Finallyの中にtryを書くと何か問題が起こるのでしょうか?
ソースをそのまま書くのは気が引けるのですが、どうか教えて頂けないでしょうか?
/**
* ファイルに文字を書き込むクラス
*/
class Sample
{
PrintWriter writer; //書き込むためのクラス
public void writerTest()
{
try
{
//** テストファイルに書き込み */
writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream("sample.txt",false),"EUC-JP")));
//書き込みを行います
writer.println("A");
writer.flush();
}
catch(IOException ioe)
{
System.out.println(ioe.getMessage());
}
finally
{
try
{
writer.close();
}
catch(IOException ioe) //このcatchでエラーが発生します。
{
System.out.println(ioe.getMessage());
}
}
}
}
お礼
お返事が送れてごめんなさい。 ソースまで確認して、やっと納得がいきました。 少しはJavaの調べ方が解ってきたと思います。 ありがとうございました。