例如:
public String showMsg(String msg) throws Exception {
if(msg == null) {
throw new Exception("Message is null");
}
//Create message anyways and return it
return "DEFAULT MESSAGE";
}
String msg = null;
try {
msg = showMsg(null);
} catch (Exception e) {
//I just want to ignore this right now.
}
System.out.println(msg); //Will this equal DEFAULT MESSAGE or null?
在某些情况下我通常需要基本上忽略异常(通常是在方法中抛出多个异常而在特定情况下无关紧要)所以尽管我为简单起见而使用了可怜的例子,但是showMsg仍然运行或者throw实际上是否返回方法?
答案 0 :(得分:57)
如果抛出异常,return
语句将不运行。抛出异常会导致程序的控制流立即转到异常的处理程序(*),跳过其他任何方式。因此,如果msg
抛出异常,则特别是null
将在您的print语句中为showMsg
。
(*)除了finally
块中的语句将会运行,但这在这里并不重要。