如果我有以下代码:
try {
Entity questionEntity = datastore.get(currentKey);
questionEntity.doSomething();
} catch (EntityNotFoundException e) {
Entity questionEntity = new Entity(currentKey);
}
Run Code Online (Sandbox Code Playgroud)
当datastore.get()函数抛出一个异常,将代码(以下行questionEntity.doSomething();)在try块被执行?
Dar*_*rov 11
不会,questionEntity.doSomething();如果datastore.get(currentKey);抛出异常将不会执行,这很容易验证,并且可能会花费你更少的时间自己尝试,而不是在SO上发布问题.
否,如果get抛出异常,控制将转移要么于所示的catch块(如果异常是EntityNotFoundException)或更高的堆栈否则.它不会继续下一行.
部分例外情况是避免代码继续尝试工作,就好像出现问题时没有发生任何事情.如果数据获取失败,这可以避免(比方说)用损坏或不完整的数据覆盖好的数据.
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |