这是我的代码的一部分......当我想编译它时 它始终显示SelfDefineException的Unreachable catch块。 永远不会从try语句主体
抛出此异常我怎么能解决它,任何人都可以帮助我,因为我已经尝试了数百万次来解决它
try
{
Statement 1;
Statement 1;
Statement 1;
Statement 1;
try
{
Statement 3;
}
catch (SelfDefineException er)
{
String error = er.getMessage();
System.out.print("issue: \n\t(" +er.getMessage() + ")");
result = false;
}
}
}
catch (SelfDefineException er)
{
System.out.print("failed: " + er.getMessage());
}
答案 0 :(得分:1)
如果SelfDefineException是一个经过检查的异常(可能是它,除非它正在扩展RuntimeException),你应该捕获它或声明它(http://docs.oracle.com/javase/tutorial/essential/exceptions/catchOrDeclare.html)。有三种可能的情况可能会给出“无法访问的代码”:
答案 1 :(得分:0)
花括号应该产生一个解析错误,而不是一个无法访问的语句错误。
可能发生的事情是,在其中一个try块中,没有任何东西抛出异常。
另外,为什么要使用
System.out.print("issue: \n\t(" +er.getMessage() + ")");
当你已经在前一行中声明了包含er.getMessage()
的变量时?
你应该只使用变量,它至少会使代码更具可读性。
System.out.print("issue: \n\t(" + error + ")");