Java构造函数忽略异常

时间:2013-12-12 00:26:34

标签: java constructor

在Java中

如何忽略从setter抛出的异常?例如

我有一个这样的二传手:

public setValue( double value){
    try{ 
     // trying to see if its a double. if it is, set private variable
     // 
    }
    catch(Exception ex){
      //i want to catch if its not a double, then i set private varieble
      // to default value. 
    }
}

在构造函数中如果我使用带有无效值的setValue(),如何忽略异常?即我不想显示调用代码的任何异常。如果我不做任何printstacktrace()会没问题吗?我怎么能测试一个double,无论它是作为一个“字符串”还是一个真正的双重?感谢

3 个答案:

答案 0 :(得分:3)

试试这个。根据你的问题。

//doubleVal is the value you are looking to set.
public void setValue(...) {
    try {
        // set the field
       doubleVal = Double.parseDouble(inputvalue);
    } catch ( NumberFormatException  e) {
        doubleVal=0.0;//default
    }
}

HTH

答案 1 :(得分:2)

您可能不想忽略例外。另一种方法是返回一个布尔值,表示字段是否设置成功:

public boolean setValue(...) {
    try {
        // set the field
        return true;
    } catch (SomeException e) {
        return false;
    }
}

或者,如果它更有意义,您也可以将异常传递给调用者。

答案 2 :(得分:0)

  

我如何测试双倍,无论它是否作为一个   “字符串”还是真正的双重?

public setValue( double value){
    // Did this method compile?
    // Then the double must be valid!
    ...