なぜこの単一の文字を読むことができないのですか?
char c = 'Y';
while(c == 'y' || c == 'Y'){
//stuff happens..
}
c = (char)System.in.read(); <----error
「未処理の例外タイプIOException」というコンパイルエラーが発生します
コードをtry/catch
ブロックでラップする(または)throws
IOException
メソッドシグネチャで定義する。チェックされたすべての例外は、例外をキャッチまたはスローする必要があります。
例:
try
{
c = (char)System.in.read();
}catch(IOException ioe)
{
//Your catch logic
}
これを解決するには、2つのオプションがあります。
以下に示すように、try-catchステートメントを使用して例外を処理します。
char c = 'Y';
while(c == 'y' || c == 'Y'){
//stuff happens..
}
try {
c = (char)System.in.read();
} catch (IOException e) {
e.printStackTrace();//or however you choose to handle this
}
クラスのパッケージステートメント(存在する場合)の下に、次のようなインポートステートメントを追加します。
import java.io.IOException;
2.関数の後にthrows句を追加して、関数がチェックされた例外をスローする可能性があることを示します。この場合、呼び出し元の関数で例外を処理することをお勧めします。
例:関数sample()がtest()を呼び出すとします。
public static void test() throws IOException {
char c = 'Y';
while(c == 'y' || c == 'Y'){
//stuff happens..
}
c = (char)System.in.read();
}
クラスのパッケージステートメント(存在する場合)の下に、次のようなインポートステートメントを追加します。
import java.io.IOException;
ケース2の場合、sample()で例外を処理できます。そうでない場合、例外(発生した場合)は、処理されるまで上方に伝播します。