【发布时间】:2018-06-12 06:08:03
【问题描述】:
下面是我的应用程序中的一些代码:
public void run() throws myException{
boolean gameOver = false;
while(!gameOver){
//do stuff, and eventually make gameOver true to end execution
...
现在是这样,我想删除布尔属性以使用用户定义的异常来结束执行。 我正在考虑检查是否在 while 条件下抛出了这个异常,只要它没有被抛出就一直循环。
类似的东西
while(myException.notThrown){
这个可以吗?
【问题讨论】:
-
你能解释一下为什么这比使用布尔标志更好吗?
-
您可以只使用
while(true),因为当您在循环内执行throw new myException();时,当前方法的执行无论如何都会停止。当然,这是否是好的设计是另一个问题。 -
发生“异常”时抛出异常。您的程序未设置为处理的意外事件。游戏结束事件似乎也不例外。
-
您应该阅读 Effective Java 2nd Ed 第 57 条:“仅在异常情况下使用异常”以了解为什么这不是一个好主意。
-
每次运行程序都会发生一次,这并不例外
标签: java exception conditional-statements