IllegalArgumentException + 继续避免中断程序?
IllegalArgumentException + continue to avoid breaking program?
我想问一下是否可以阻止 IllegalArgumentException 破坏程序 运行ning。如果我这样做:
throw new
IllegalArgumentException("Value not
allowed!");
continue;
是否会阻止IAE在异常触发后破坏程序?如果没有,是否有任何方法可以将其作为错误消息抛给用户,然后允许他们继续 运行 程序而无需重新 运行?
要么使用 try..catch
结构来“拦截”异常,要么一开始就不要抛出异常。
如果要处理异常(即阻止程序终止),必须使用 try/catch 块。
每当抛出异常时,控制立即退出。您的“继续”语句 NOT 已执行。
当你“捕捉”到一个异常时,你可以重新抛出它。您可能会在代码中的某个更高级别有另一个 try/catch 块。
然而,您的 BEST 策略是“防御性编码”并首先尝试防止 IllegalArgumentException 发生。
最后,您永远不想丢失信息。
/*
* Poor:
* *WHAT* value??? Where did this occur? Why?
* You've just lost all this information, "Value not allowed" is uselessly vague...
*/
throw new IllegalArgumentException("Value not allowed!");
我想问一下是否可以阻止 IllegalArgumentException 破坏程序 运行ning。如果我这样做:
throw new
IllegalArgumentException("Value not
allowed!");
continue;
是否会阻止IAE在异常触发后破坏程序?如果没有,是否有任何方法可以将其作为错误消息抛给用户,然后允许他们继续 运行 程序而无需重新 运行?
要么使用 try..catch
结构来“拦截”异常,要么一开始就不要抛出异常。
如果要处理异常(即阻止程序终止),必须使用 try/catch 块。
每当抛出异常时,控制立即退出。您的“继续”语句 NOT 已执行。
当你“捕捉”到一个异常时,你可以重新抛出它。您可能会在代码中的某个更高级别有另一个 try/catch 块。
然而,您的 BEST 策略是“防御性编码”并首先尝试防止 IllegalArgumentException 发生。
最后,您永远不想丢失信息。
/* * Poor: * *WHAT* value??? Where did this occur? Why? * You've just lost all this information, "Value not allowed" is uselessly vague... */ throw new IllegalArgumentException("Value not allowed!");