使用throws时编译错误

时间:2014-07-08 21:30:36

标签: java

按照我在此网站上找到的一个简单示例,我有示例代码

import java.awt.*;
public class Main throws AWTException{

public static void main(String[] args) {
    Robot bot = new Robot();
    bot.mouseMove(50, 50);  
}
}

当我编译它时,我得到错误

Main.java:2: error: '{' expected
public class Main throws AWTException {
                 ^
1 error

有人可以解释什么是错的吗?我尝试了许多不同的东西,对我而言,似乎"抛出"单词根本无法被编译器识别。

1 个答案:

答案 0 :(得分:2)

你不能在类级别抛出异常,它可以在方法级别完成:

1)throw在方法体中,try-catch块包装可能引发异常的特定语句。

    public class Test{
        public Test(){

        }

        public void testMethod(){
            try{
                //statements might throw exception
            }catch(Exception e){
                //must print the exception message here, it's a good habit...
            }
        }
    }

2)throws在方法声明中,它会将异常传播给调用testMethod()的方法,真正有助于进一步跟踪异常。

    public class Test{
        public Test(){

        }

        public void testMethod() throws Exception{
            //code goes here
        }
    }

3)类构造函数声明中的throws

public class Test{
    public Test() throws Exception{

    }
}

在你的情况下:

import java.awt.*;
public class Main {

    public static void main(String[] args)throws AWTException {
        Robot bot = new Robot();
        bot.mouseMove(50, 50);  
    }
}

或在静态主方法中:

public static void main(String[] args){
    Robot bot = new Robot(); // if Robot constructor declared AWTException
                             // the class instance initialization line should
                             // be wrapped in the try-catch block as well
    try{
        bot.mouseMove(50, 50);//mouseMove might throw AWTException
    }catch( AWTException awte){
        System.err.println("Exception thrown:" + awte.getMessage());
    }
}