0

为什么我看不懂这个单字?

char c = 'Y';
    while(c == 'y' || c == 'Y'){
        //stuff happens..
    }
    c = (char)System.in.read();   <----error

我收到一个编译错误,上面写着“未处理的异常类型 IOException”

4

2 回答 2

3

将代码包装在try/catch块中(或)throws IOException在方法签名中定义。所有检查的异常都应该是 catch 或 throws 异常。

例子:

 try
    {
      c = (char)System.in.read();  
    }catch(IOException ioe)
    {
   //Your catch logic
    }
于 2012-08-03T19:00:44.030 回答
0

您有 2 个选项可以解决此问题:

  1. 使用 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
    }
    

在类中的 package 语句(如果有)下方,添加如下 import 语句:

        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();

}

在类中的 package 语句(如果有)下方,添加如下 import 语句:

        import java.io.IOException;

在情况 2 中,您可以在 sample() 中处理异常,否则异常(如果发生)将向上传播直到它被处理。

于 2012-08-03T23:17:02.270 回答