java错误:类型catch的非法开始(异常e)

epggiuax  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(347)

java编译器(jdkv11.0.2)给出了上述错误。
实际上,我试着用java中的多线程函数编写代码,同时打印从1到5再到5到1的数字,延迟200ms,但它显示了try-and-catch block-error的错误:
catch类型的非法开始(异常e)

class Threaddemo extends Thread
{
   public static void run() 
   try
   {
     for(i=1;i<=5;i++)
     {
       System.out.println(i);
       Thread.sleep(200);
     }
   }
   catch(Exception e)
   {
     System.out.println("exception found");
   }
}

class Threaddemo1 extends Thread
{
  public static void run()
  {
    try
    {
      for (i=5;i>=1;i--)
      {
        System.out.println(i);
        Thread.sleep(200);

      }
    }
    catch(Exception e)
    {
      ("exception2 found");
    }
  }
}

class mainclass
{

public static void main(String arg[])

  {
    threaddemo obj1=new threaddemo1();
    threaddemo1 obj2=new threaddemo();
    obj1.start();
    obj2.start();
  }
}
f1tvaqid

f1tvaqid1#

你的第一节课缺了一个括号 { . 同样,作为一个习惯于在方法下面加上括号的人,我认为如果你把它放在最后会更好/更清晰。

class Threaddemo extends Thread {
    public static void run() {
        try {
            for (int i = 1; i <= 5; i++) {
                System.out.println(i);
                Thread.sleep(200);
            }
        } catch (Exception e) {
            System.out.println("exception found");
        }
    }
}

另外,如果您查看我的解决方案并将其与您的解决方案进行比较,那么您并没有声明 i 在循环中。在你的情况下,它必须是int。

b0zn9rqh

b0zn9rqh2#

我想你错过了{}
尝试:

class Threaddemo extends Thread
{
   public static void run(){ 
     try
     {
       for(i=1;i<=5;i++)
       {
         System.out.println(i);
         Thread.sleep(200);
       }
     }
     catch(Exception e)
     {
       System.out.println("exception found");
     }
   }
}

相关问题