【发布时间】:2014-04-13 06:40:18
【问题描述】:
如果在方法内部抛出异常,返回值是否保持原来的样子?
例如:
public int test(int a) {
throw new Exception();
}
然后:
a=2;
a=test(a);
...捕获后...
System.out.println(String.valueOf(a)); //a=?
是否受到异常的影响?在逻辑上似乎不是这样(?)虽然找不到关于那个的信息。 我需要确定。
【问题讨论】:
-
我猜
a仍然是2,但你为什么不试试呢? -
我确实尝试过,而且效果很好,但我需要 100% 确定情况总是如此。
-
如果你将一个对象作为参数传递并在抛出异常之前修改了它的值,那么该对象仍然会被修改。
-
@user2254314 它工作了一次?那么为什么它会表现得不一样呢?真正的问题是什么?
-
别无礼。 “它工作了一次”是保证某事一直工作的保证吗?可能有一些特殊情况。