![](/img/trans.png)
[英]Why i can`t throw Exception(checked) in a method that is invoked in a try catch statement?
[英]Can I catch a throw exception from method?
當我嘗試從方法聲明中引發異常時,出現錯誤“ ClassNotFoundException的Unreachable 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
? 提前致謝。
try{...} catch(){...}
語句的catch塊只能捕獲try{...}
塊引發的異常。 (或該異常的超類)
try {
Integer.parseInt("1");
//Integer.parseInt throws NumberFormatException
} catch (NumberFormatException e) {
//Handle this error
}
但是,您基本上想做的是:
try {
Integer.parseInt("1");
//Integer.parseInt throws NumberFormatException
} catch (OtherException e) {
//Handle this error
}
因為沒有在你的發言try{...}
塊扔OtherException
,編譯器就會給你一個錯誤,因為它知道, 沒有在你try{...}
塊都不會拋出異常,所以你不應該嘗試catch
永不thrown
東西。
就您而言, try{...}
塊中沒有任何東西拋出ClassNotFoundException
,因此您無需捕獲它。 您可以從代碼中刪除catch (ClassNotFoundException e) {...}
,以修復錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.