Java,如何在try-catch块中声明变量

时间:2014-05-07 05:03:41

标签: java try-catch

所以我只是在学习java,而且我正在编写一个简单的程序,但是我发现用户可以输入一些不是int的东西,所以我在网上查找了认为解决这个问题的最佳方法是使用try和catch块。但是,在我这样做之后,程序的其余部分给了我一个错误,因为我在块中声明了一个变量。那么如何在块内声明这个变量呢?

            try{
              int guessN = guess.nextInt();
            }
            catch(InputMismatchException err){
                  System.out.println(err);
            }
            finally {
                int guessN = guess.nextInt();
            }
            //Location of error
            if(guessN < newN){
                log("Wrong! The number is more than your guess");
            }

没关系,我只是将代码放在try块中,它就起作用了XD抱歉!

4 个答案:

答案 0 :(得分:3)

将声明移到外面并在块内进行分配:

            int guessN = 0;
            try{
               guessN = guess.nextInt(); }
            catch(InputMismatchException err){
                  System.out.println(err);
            }
            finally {
                guessN = guess.nextInt();
            }

答案 1 :(得分:1)

这样做

       int guessN=0;
       try{
           guessN = guess.nextInt();
        }
        catch(InputMismatchException err){
              System.out.println(err);
        }
        finally {
             guessN = guess.nextInt();
        }
        //Location of error
        if(guessN < newN){
            log("Wrong! The number is more than your guess");
        }

答案 2 :(得分:0)

每次你打开花括号时,你都要创建一个范围。如果您希望在该范围之外识别变量,则应在那里(外部)声明它。

答案 3 :(得分:0)

你应该在街区外宣布:

     int guessN = 0;
     try{
          guessN = guess.nextInt();
        }
        catch(InputMismatchException err){
              System.out.println(err);
        }
        finally {
            guessN = guess.nextInt();
        }
        //Location of error
        if(guessN < newN){
            log("Wrong! The number is more than your guess");
        }