【发布时间】:2017-01-04 18:57:26
【问题描述】:
当我尝试从方法声明中抛出异常时,我收到错误“ClassNotFoundException 的无法到达的 catch 块。这个异常永远不会从 try 语句体中抛出”。
代码是这样的:
public class MenuSQL {
private static String sentence = "";
private static int option;
Statement sentenceSQL = ConnectSQL.getConexion().createStatement();
public MenuSQL(int option) throws ClassNotFoundException, SQLException {
super();
this.option = option;
try {
System.out.print("Introduce the sentence: ");
System.out.print(sentence);
sentence += new Scanner(System.in).nextLine();
System.out.println(MenuSentence.rightNow("LOG") + "Sentence: " + sentence);
if (opcion == 4) {
MenuSentence.list(sentence);
} else {
sentenceSQL.executeQuery(sentence);
}
} catch (SQLException e) {
System.out.println(MenuSentence.rightNow("SQL") + "Sentence: " + sentence);
} catch (ClassNotFoundException e) {
System.out.println(MenuSentence.rightNow("ERROR") + "Sentence: " + sentence);
}
}
}
我怎样才能捕捉到ClassNotFoundException?提前致谢。
【问题讨论】:
-
为什么要捕获一个永远不会在
tryblock 中抛出的异常?为什么你的方法会抛出异常,尽管它会捕获它们? -
在方法中根本没有任何意义可以抛出 ClassNotFoundException。
-
这是因为编译器强迫我在方法中抛出那个异常
标签: java exception methods try-catch throws