【问题标题】:JAVA error in try catch blocktry catch 块中的 JAVA 错误
【发布时间】:2014-02-03 07:16:00
【问题描述】:

我是 java 的初学者,我正在做一个简单的程序,在不同的文件中包含类并创建对象。 我有两个名为dataFile.java 的文件(用于数据a、b、c,它将借助getdata() 方法从键盘输入) 另一个文件名为classFile.java,用于使用来自其他类的数据并打印总和。 但是我在编译dataFile.java 时遇到了这个错误

dataFile.java 的代码如下

import java.io.DataInputStream;
class differentFile
{

        DataInputStream input = new DataInputStream(System.in);

        int a,b,c; 
        try {
        void getdata(){
        a= Integer.valueOf(input.readLine()).intValue();
        b=Integer.valueOf(input.readLine()).intValue();
        c=Integer.valueOf(input.readLine()).intValue();
        }

     }
        catch(Exeption e) {
                System.out.println(" IO ERROR ");
                 }
}

我发现的错误是

dataFile.java:8: error: illegal start of type
    try {
    ^
dataFile.java:8: error: ';' expected
    try {
       ^
dataFile.java:17: error: class, interface, or enum expected
    catch(Exeption e) { 
    ^ 
dataFile.java:19: error: class, interface, or enum expected
        } 
        ^
4 errors

我不熟悉这些错误,根据教科书我使用的语法是正确的。如果有人帮我解决这个问题,那就太好了。谢谢。

【问题讨论】:

    标签: java enums try-catch


    【解决方案1】:

    try-catch 块必须存在于方法中。您甚至在方法之前就启动了try,然后在方法中有trycatch 子句之前关闭了该方法。您需要将您的代码重新排列成这样:

    void getdata() {  // Method starts
        try { // try starts
            a = Integer.valueOf(input.readLine()).intValue();
            b = Integer.valueOf(input.readLine()).intValue();
            c = Integer.valueOf(input.readLine()).intValue();
        } // try ends
    
        catch (Exeption e) { // catch for the try starts
            System.out.println(" IO ERROR ");
        } // catch ends
    } // method ends
    

    【讨论】:

    • 抱歉删除了评论,与错误打印 IO Error 混淆,但当然它也可能是 NumberFormatException
    • @user2310289 - 没问题。我的也删了!让我们清理一下:)
    • 成功了!我不知道我必须在方法中使用 try-catch 。总是这样吗?
    • @Sach106 - 是的。在java中,您需要将几乎所有语句(除了声明语句和其他一些语句)放在一个方法中。他们不应该像那样在课堂上闲逛。
    【解决方案2】:

    修改如下:

    void getdata() {
        try {
            a = Integer.valueOf(input.readLine()).intValue();
            b = Integer.valueOf(input.readLine()).intValue();
            c = Integer.valueOf(input.readLine()).intValue();
        } catch (Exeption e) {
            System.out.println(" IO ERROR ");
        }
    }
    

    【讨论】:

      【解决方案3】:

      这样改

      import java.io.DataInputStream;
      
      class differentFile
      {
      
              DataInputStream input = new DataInputStream(System.in);
      
              int a,b,c; 
              try 
              {
                   void getdata()
                   {
                       a= Integer.valueOf(input.readLine()).intValue();
                       b=Integer.valueOf(input.readLine()).intValue();
                       c=Integer.valueOf(input.readLine()).intValue();
                   } 
              }
              catch(Exeption e) 
              {
                      System.out.println(" IO ERROR ");
              }
      
      }
      

      【讨论】:

      • -1 因为缺少对这段代码的作用或为什么它是您的答案的解释。
      猜你喜欢
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 2016-05-04
      • 2015-09-05
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多