我对投掷有疑问。如何在以下代码中使用throw? catch块是否返回false?
try
{
//code
}
catch(Exception ex)
{
throw;
return false;
}
答案 0 :(得分:12)
不,它重新抛出。调用堆栈需要捕获它。
永远不会达到return false
。
答案 1 :(得分:3)
投掷和返回虚假没有意义。异常用于指示何时发生错误,因此没有理由同时具有指示这样的布尔标志。假设您的try / catch在BankAccount类中。如果您的客户端代码如下所示:
boolean success = bankAccount.withdraw(20.00);
if(success == false) System.out.println("An error! Hmmm... Perhaps there were insufficient funds?");
else placeInWallet(20.00);
你可能会这样做:
try {
bankAccount.withdraw(20.00);
placeInWallet(20.00);
}
catch(InsufficientFunds e) {
System.out.println("An error! There were insufficient funds!");
}
哪个更干净,因为正常逻辑与错误处理逻辑明显分开。
答案 2 :(得分:2)
没有返回值。 throw
停止执行该方法,并且调用块将收到重新抛出的异常。