Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对抛出异常的数据验证_Java_Validation_Double_Illegalargumentexception - Fatal编程技术网

Java 对抛出异常的数据验证

Java 对抛出异常的数据验证,java,validation,double,illegalargumentexception,Java,Validation,Double,Illegalargumentexception,我正在尝试读取一年第一季度经纪人收入的数字。我想确保不能输入0或更少,但当我输入0时,它只接受它,并且不会抛出异常? 我做错了什么?任何帮助都将不胜感激 public void setQuarter1(double newQuarter1) { if ( newQuarter1 > 0) quarter1 = newQuarter1; else throw new IllegalArgumentException("new quarter must be

我正在尝试读取一年第一季度经纪人收入的数字。我想确保不能输入0或更少,但当我输入0时,它只接受它,并且不会抛出异常? 我做错了什么?任何帮助都将不胜感激

 public void setQuarter1(double newQuarter1)
 {
   if ( newQuarter1 > 0)
     quarter1 = newQuarter1;
   else
     throw new IllegalArgumentException("new quarter must be > 0.0");
 }
好的,这是我的全部作业代码

import java.util.Scanner;



public class Broker {

//(a) declare instance variables

private String department, firstName, lastName;
private double quarter1, quarter2, quarter3, quarter4;




//(b) Access methods for instance variables

public void setDepartmentName(String newName)
{
    department=newName;
}


public String getDepartment ()
{
    return department;
}

//set and get methods for first name

public void setFirstName (String newFirstName)
{
    firstName=newFirstName;
}


public String getFirstName ()
{
    return firstName;
}

//set and get methods for last name

public void setLastName(String newLastName)
{
    lastName=newLastName;
}

public String getLastName ()
{
    return lastName;
}

//set and get methods for Quarter 1

public void setQuarter1(double newQuarter1)
{

    if ( newQuarter1 > 0)
          quarter1 = newQuarter1;
        else
          throw new IllegalArgumentException(
      "new quarter  must be > 0.0");


}


public double getQuarter1()
{
    return quarter1;
}

//set and get methods for Quarter 2

public void setQuarter2(double newQuarter2)
{
    quarter2 = newQuarter2;
}

public double getQuarter2 ()
{
    return quarter2;
}

//set and get methods for Quarter 3

public void setQuarter3(double newQuarter3)
{
    quarter2 = newQuarter3;
}

public double getQuarter3 ()
{
    return quarter3;
}



//set and get methods for Quarter 4

public void setQuarter4(double newQuarter4)
{
    quarter4 = newQuarter4;
}

public double getQuarter4 ()
{
    return quarter4;
}

//(c) class variable annualbrokerage total and two access methods

private static double brokerageTotal;


public void setbrokerageTotal(double newBrokerageTotal)
{
    newBrokerageTotal=brokerageTotal;
}


//(c) constructor to initialise instance variables department,firstname and lastname

public Broker (String dept, String first, String last )
{
    department = dept;
    firstName = first;
    lastName = last;

}



// (d) constructor to initialise all instance variables from (a)

public Broker (String dept, String first, String last,double q1,double q2,double q3,double q4 )
{
    department = dept;
    firstName = first;
    lastName = last;
    quarter1 = q1;
    quarter2 = q2;
    quarter3 = q3;
    quarter4 = q4;


}


// (e) no-argument constructor to initialise default broker instance

public Broker ()
{
    department = null;
    firstName = null;
    lastName = null;
    quarter1 = 0;
    quarter2 = 0;
    quarter3 = 0;
    quarter4 = 0;
}


//(f)   Method to read in quarters from user

public void readInQuarters ()
{
    Scanner input = new Scanner(System.in);


     System.out.println("Please enter Q1,Q2,Q3 and Q4 figures for broker:");






        quarter1 = input.nextInt();
        quarter2 = input.nextInt();
        quarter3 = input.nextInt();
        quarter4 = input.nextInt();



 }  //end of read in quarters method



 // (g) getBrokerTotal Method to return total trades for 4 quarters


public double getBrokerTotal()

 {

     //code to calculate broker quarterly totals

     double brokerTotal = quarter1 + quarter2 + quarter3 + quarter4;

     return brokerTotal;
 }   //end of getBrokerTotal method


//(e)  getBonus method to calculate brokers bonus

public double getBonus()
 {

   double bonusRate=0;
   double bonus=0;


    //bonus rate depending on department rate

   if("Dublin"==department)
          bonusRate=.12;
   else if("London"==department)
          bonusRate=.15;
   else
      bonusRate=.10;

     bonus = (quarter1 + quarter2 + quarter3 + quarter4)*(bonusRate);
        return bonus;
  }


   //(i) to string method for broker class

   public String toString()
     {
      return String.format("  Name: "+ getFirstName()+"\n  Surname: "+getLastName()+"\n  Department: "+getDepartment()+"\n  Total: "+getBrokerTotal()+"\n  Bonus: "+getBonus()+"\n\n");
     }//end of toString method





    //(i) Static methods to read in broker array and output quarterly totals

     //Quarter1 totals method
    public static double getQuarter1Total (Broker[]brokerQuarter1Array)

         {
            double quarter1Total = brokerQuarter1Array[0].getQuarter1()+ brokerQuarter1Array[1].getQuarter1()+ brokerQuarter1Array[2].getQuarter1()+ brokerQuarter1Array[3].getQuarter1()
                                   + brokerQuarter1Array[4].getQuarter1() + brokerQuarter1Array[5].getQuarter1();

                                   return quarter1Total;
         }


     //Quarter2 totals method
    public static double getQuarter2Total (Broker[]brokerQuarter2Array)

        {
            double quarter2Total = brokerQuarter2Array[0].getQuarter2()+ brokerQuarter2Array[1].getQuarter2()+ brokerQuarter2Array[2].getQuarter2()+ brokerQuarter2Array[3].getQuarter2()
                                   + brokerQuarter2Array[4].getQuarter2() + brokerQuarter2Array[5].getQuarter2();

                                   return quarter2Total;
        }


     //Quarter3 totals method
    public static double getQuarter3Total (Broker[]brokerQuarter3Array)

    {
        double quarter3Total = brokerQuarter3Array[0].getQuarter3()+ brokerQuarter3Array[1].getQuarter3()+ brokerQuarter3Array[2].getQuarter3()+ brokerQuarter3Array[3].getQuarter3()
                               + brokerQuarter3Array[4].getQuarter3() + brokerQuarter3Array[5].getQuarter3();

                               return quarter3Total;
    }


     //Quarter4 totals method
    public static double getQuarter4Total (Broker[]brokerQuarter4Array)

        {
            double quarter4Total = brokerQuarter4Array[0].getQuarter4()+ brokerQuarter4Array[1].getQuarter4()+ brokerQuarter4Array[2].getQuarter4()+ brokerQuarter4Array[3].getQuarter4()
                                   + brokerQuarter4Array[4].getQuarter4() + brokerQuarter4Array[5].getQuarter4();

                                   return quarter4Total;
    }




   // Static method to calculate total brokerage totals for all brokers

public static void setBrokerageTotal (Broker[] brokerTotalsArray)

            {
             double annualBrokerageTotal= brokerTotalsArray[0].getBrokerTotal() + brokerTotalsArray[1].getBrokerTotal()

             + brokerTotalsArray[2].getBrokerTotal() + brokerTotalsArray[3].getBrokerTotal() + brokerTotalsArray[4].getBrokerTotal() + brokerTotalsArray[5].getBrokerTotal();

             }


 // Static method to get the total bonuses for all brokers cobined

  public static double getBrokerageBonus (Broker [] brokerageBonusTotalArray)

            {
             double totalBrokerageBonus  = brokerageBonusTotalArray[0].getBonus()+ brokerageBonusTotalArray[1].getBonus()+ brokerageBonusTotalArray[2].getBonus()+ brokerageBonusTotalArray[3].getBonus()
             + brokerageBonusTotalArray[4].getBonus() + brokerageBonusTotalArray[5].getBonus();

                return totalBrokerageBonus;
    }




public static void main(String[]args)

{

    //Part-B


    ///(a) create broker1 with the no argument constructor

    Broker broker1=new Broker();

    broker1.setDepartmentName("Dublin");
    broker1.setFirstName("John");
    broker1.setLastName("Wall");
    broker1.setQuarter1(12);
    broker1.setQuarter2(24);
    broker1.setQuarter3(26);
    broker1.setQuarter4(17);

    System.out.print(broker1);



//(b) create broker2

    Broker broker2 = new Broker("London","Sarah","May");
    broker2.setQuarter1(8);
    broker2.setQuarter2(11);
    broker2.setQuarter3(7);
    broker2.setQuarter4(9);

    System.out.print(broker2);


//(c) create broker3

     Broker broker3 = new Broker("London","Ruth","Lavin");
     //call read in quarters method
     broker3.readInQuarters();

   System.out.print(broker3);




//(d) create broker4,broker5,broker6
     Broker broker4=new Broker("Dublin","Conor","Smith",21,23,26,31);
     Broker broker5=new Broker("Paris","Jerome","Duignan",14,14,17,18);
     Broker broker6=new Broker("Paris","Patick","Bateman",23,24,26,35);


//(e)  Create broker array

     Broker[] brokers;
     brokers=new Broker [6];

     brokers[0]=broker1;brokers[1]=broker2;brokers[2]=broker3;brokers[3]=broker4;brokers[4]=broker5;brokers[5]=broker6;



//(f)  Output second table
      String[] headings ={"Dept","Firstname","Surname","Q1","Q2","Q3","Q4","Total","Bonus"};


        //loop to print the headings
     for (int i = 0; i < headings.length; i++)

       {
         System.out.print(headings[i]+"     ");
       }


       //print a space under the headings
          System.out.println(" \n");


       //loop to print the main table plus format specifiers to align the text


     for (int i = 0; i < 5; i++)
       {

          System.out.printf("%-7s  %-13s %-11s %-6s %-6s %-6s %-6s %-10s %.1f \n\n",brokers[i].getDepartment(), brokers[i].getFirstName(),brokers[i].getLastName(),brokers[i].getQuarter1(),brokers[i].getQuarter2(),brokers[i].getQuarter3(),brokers[i].getQuarter4(),brokers[i].getBrokerTotal(),brokers[i].getBonus());
       }
    //  console printout for quarterly totals

 System.out.printf("%33s \n","Quarterly ");
 System.out.printf("%29  %9s  %6s %6s %6s %6s  \n","Total ",getQuarter1Total(brokers),getQuarter2Total(brokers),getQuarter3Total(brokers),getQuarter4Total(brokers),getBrokerageBonus(brokers));

}    //end of method main


}    //end of class broker
import java.util.Scanner;
公共类经纪人{
//(a) 声明实例变量
私人字符串部门,名字,姓氏;
私人双人四分之一、二分之一、三分之一、四分之一;
//(b) 实例变量的访问方法
public void setDepartmentName(字符串newName)
{
部门=新名称;
}
公共部门()
{
退货部;
}
//设置和获取名字的方法
public void setFirstName(字符串newFirstName)
{
firstName=newFirstName;
}
公共字符串getFirstName()
{
返回名字;
}
//设置和获取姓氏的方法
public void setLastName(字符串newLastName)
{
lastName=newLastName;
}
公共字符串getLastName()
{
返回姓氏;
}
//第1季度的设置和获取方法
公共无效设置季度1(双新季度1)
{
如果(新季度1>0)
四分之一=新四分之一;
其他的
抛出新的IllegalArgumentException(
“新季度必须大于0.0”);
}
公共双getQuarter1()
{
第1季度返回;
}
//第二季度的设置和获取方法
公共无效设置季度2(双新季度2)
{
quarter2=newQuarter2;
}
公共双getQuarter2()
{
第二季度返回;
}
//第三季度的设置和获取方法
公共无效设置季度3(双新季度3)
{
quarter2=newQuarter3;
}
公共双四分之三()
{
第三季度返回;
}
//第四季度的设置和获取方法
公共无效设置季度4(双新季度4)
{
quarter4=newQuarter4;
}
公共双四分之四()
{
第四季度返回;
}
//(c) 类变量annualbrokerage total和两种访问方法
私人静态双经纪公司;
公共收入总额(双倍新收入总额)
{
newBrokerageTotal=经纪公司总计;
}
//(c) 构造函数初始化实例变量department、firstname和lastname
公共经纪人(字符串部门、字符串优先、字符串最后)
{
部门=部门;
firstName=first;
lastName=last;
}
//(d)构造函数初始化(a)中的所有实例变量
公共经纪人(字符串部门、字符串第一、字符串最后、双q1、双q2、双q3、双q4)
{
部门=部门;
firstName=first;
lastName=last;
四分之一=q1;
四分之一=q2;
四分之一=q3;
四分之一=q4;
}
//(e)没有用于初始化默认代理实例的参数构造函数
公共经纪人()
{
部门=空;
firstName=null;
lastName=null;
四分之一=0;
四分之一=0;
四分之一=0;
四分之一=0;
}
//(f) 从用户处读取四分之一硬币的方法
公共空读区()
{
扫描仪输入=新扫描仪(System.in);
System.out.println(“请为经纪人输入Q1、Q2、Q3和Q4数字:”);
quarte1=input.nextInt();
quarte2=input.nextInt();
quarte3=input.nextInt();
quarter4=input.nextInt();
}//读入四分之一方法的结束
//(g)getBrokerTotal方法返回4个季度的交易总额
public double getBrokerTotal()
{
//计算经纪人季度总计的代码
double brokerTotal=quarter1+quarter2+quarter3+quarter4;
返回brokerTotal;
}//getBrokerTotal方法的结尾
//(e) 计算经纪人奖金的getBonus方法
公共双倍奖金()
{
双骨率=0;
双倍奖金=0;
//奖金率取决于部门费率
如果(“都柏林”==部门)
骨率=.12;
否则,如果(“伦敦”==部门)
骨率=.15;
其他的
骨率=.10;
奖金=(第1季度+第2季度+第3季度+第4季度)*(bonusRate);
回报奖金;
}
//(i) 为代理类创建字符串方法
公共字符串toString()
{
返回字符串.格式(“名称:“+getFirstName()+”\n姓氏:“+getLastName()+”\n部门:“+getDepartment()+”\n总计:“+getBrokerTotal()+”\n奖金:“+getBonus()+”\n\n”);
}//toString结束方法
//(i) 读取代理数组并输出季度总计的静态方法
//四分之一总计法
公共静态双GetQuarter1总计(Broker[]BrokerQuarter1阵列)
{
double quarter1Total=brokerQuarter1Array[0]。getQuarter1()+brokerQuarter1Array[1]。getQuarter1()+brokerQuarter1Array[2]。getQuarter1()+brokerQuarter1Array[3]。getQuarter1()
+BrokerQuarter1阵列[4]。getQuarter1()+BrokerQuarter1阵列[5]。getQuarter1();
返回四分之一总数;
}
//四分之二总计法
公共静态双getQuarter2Total(Broker[]brokerQuarter2Array)
{
double quarter2Total=brokerQuarter2Array[0]。getQuarter2()+brokerQuarter2Array[1]。getQuarter2()+brokerQuarter2Array[2]。getQuarter2()+brokerQuarter2Array[3]。getQuarter2()
+brokerQuarter2Array[4]。getQuarter2()+brokerQuarter2Array[5]。getQuarter2();
返回四分之二总数;
}
//四分之三总计法
公共静态双GetQuarter3总计(Broker[]BrokerQuarter3阵列)
{
double quarter3Total=brokerQuarter3Array[0]。getQuarter3()+brokerQuarter3Array[1]。getQuarter3()+brokerQuarter3Array[2]。getQuarter3()+brokerQuarter3Array[3]。getQuarter3()
+brokerQuarter3Array[4]。getQuarter3()+brokerQuarter3Array[5]。getQuarter3();
返回四分之三总数;
}
//四分之一总计法
公共静态双getQuarter4Total(Broker[]brokerQuarter4Array)
{
double quarter4Total=brokerQuarter4Array[0]。getQuarter4()+brokerQuarter4Array[1]。getQuarter4()+brokerQuarter4Array[2]。getQuarter4()+brokerQuarter4Array[3]。getQuarter4()
+经纪曲
public void readInQuarters () {
  Scanner input = new Scanner(System.in);
  System.out.println("Please enter Q1,Q2,Q3 and Q4 figures for broker:");
  quarter1 = input.nextInt(); // <-- Use your setters!
  quarter2 = input.nextInt();
  quarter3 = input.nextInt();
  quarter4 = input.nextInt();

  // should be,
  setQuarter1(input.nextInt()); // and so on... although I will point out, you should
                                // be reading double(s) apparently.
}
boolean validate() {

int c = Integer.parseInt(txtFieldSetupTopElevation.getText().toString().trim());

if (c <= 0) {
// Here use code for show msg error or information
// return true if value is greater than 0 other wise return else
return false;
     }
}