验证文本输入时如何避免try-catch

Jas*_*eet 0 java try-catch

在处理代码时,我想知道是否可以避免尝试捕获并使用其他东西.例如,如果我有一个double类型的值(来自控制台),并且如果用户输入字符串或其他内容,则应该提示重新输入该值.

我知道这可以通过try-n-catch非常容易地完成,但是如果没有它我们怎么做呢,有什么办法吗?

如果可能请举个例子.

T.J*_*der 8

遗憾的是,JDK缺少TryParse其他一些库提供的方法.我不会惊讶地发现Apache CommonsGuava中有这样的东西.

或者,您可以使用a Scanner并使用它hasNextDouble来进行检查.


如果你问如何避免一般性地处理异常:不要试试.异常是处理程序中异常条件的有效方法,并且由已检查的异常提供的"句柄或声明"(例如,您的代码必须处理异常,或声明它没有)非常有用.

但是有一些用例,比如你的例子,你可能希望避免抛出异常,因为毕竟用户输入无效输入并不是一个例外情况,它是一个非常常见的情况.:-)