读单字符java

时间:2012-08-03 18:59:44

标签: java io character

为什么我不能读这个单一的角色?

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

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

2 个答案:

答案 0 :(得分:3)

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

示例:

 try
    {
      c = (char)System.in.read();  
    }catch(IOException ioe)
    {
   //Your catch logic
    }

答案 1 :(得分: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
    }
    
  2. 在类中的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()中的异常,否则异常(如果发生)将向上传播直到它被处理。