按照我在此网站上找到的一个简单示例,我有示例代码
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
有人可以解释什么是错的吗?我尝试了许多不同的东西,对我而言,似乎"抛出"单词根本无法被编译器识别。
答案 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());
}
}