尝试使用时
success
编译器抱怨:
不能抛出Object类型的异常;异常类型必须是Throwable的子类
我正在使用eclipse luna,编译器设置为java 8用于项目
答案 0 :(得分:2)
我刚碰到这个,这让我发疯了。
我通过向现有catch添加 if(!$stmt = $this->conn->prepare($sql)){
$errorDump = '
Error 1 '.date("r").' :
';
$errorDump .= $this->conn->error;
$errorDump .= "\n\nBacktrace:\n".print_r(debug_backtrace(),TRUE);
$errorDump .= "
SQL: ".$sql;
error_log($errorDump);
unset($errorDump);
return false;
}
....
//carry on with the query as it's ok
来创建一个多捕获异常处理程序
Eclipse抱怨
不能抛出Object类型的异常;异常类型必须是a Throwable的子类
我终于注意到我没有添加相应的import语句,所以eclipse并不知道新添加的异常的类型。
如果eclipse会抱怨
URISyntaxException无法解析为类型
当异常本身时,就是说什么 当它是多重捕获的一部分时,你得到的错误是非直观的。
答案 1 :(得分:0)
听起来就像其中一个缺少'扩展异常'。
我认为它与“多重异常处理”没有任何关系,JDK8肯定会编译这样的代码。
这两个实际上是否扩展了异常/是否可抛弃?
答案 2 :(得分:0)
在eclipse中,只需确保导入catch子句中的所有异常
catch(SomeException se | SomeException1 se1 | SomeException2 se2){
doSomething();
}
缺少导入语句会显示如下错误。