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

时间:2013-08-25 16:26:50

标签: java try-catch

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

我知道使用try-n-catch可以很容易地做到这一点但是如果没有它我们怎么做呢,还有什么办法吗?

请尽可能举例。

2 个答案:

答案 0 :(得分:8)

可悲的是,JDK缺少其他一些库提供的TryParse方法。我会在Apache CommonsGuava找到能够做到这一点的事情,我不会感到惊讶。

或者,您可以使用Scanner并使用其hasNextDouble进行检查。


如果您正在询问如何避免处理一般的异常:请勿尝试。异常是处理程序中异常条件的有效方法,并且由已检查的异常提供的“句柄或声明”(例如,您的代码必须处理异常,或声明它没有)非常有用。

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

答案 1 :(得分:1)

抛出异常不太稳健,但是使用try / catch语句处理避免的好方法。

 import java.io.*;

 public class UsingThrows { 
 public static void main(String args[]) throws FileNotFoundException { 

 FileInputStream fis = new FileInputStream("def.txt");
 System.out.println("OK 1"); 

  }
 }