大丈夫。「Payroll」というクラスを使用する「PayrollDemo」というクラスがあります。特定の例外を管理するいくつかの例外クラスを既にセットアップしましたが、これらの例外をスローする方法を理解する必要があります。
入力された各フィールドが適切な基準であるかどうかをチェックする一連の if ステートメントを使用して、これを行う必要があると思います。問題は、私が作業しているクラスとは異なるクラスで例外処理がダウンしているため、どのようにスローできるかわかりません。
ここでは、名前文字列が空でないことを確認しています。空である場合、「InvalidNameException」と呼ばれる例外が発生し、「PayrollDemo」と同じフォルダーにある「InvalidNameException」クラスにスローされます。クラス。
public class PayrollDemo
{
public static void main(String[] args)
{
Payroll pr = new Payroll ("Test Name", 234);
System.out.println("Current Employee Information. \n");
System.out.println("Name: " + pr.getName());
System.out.println("ID: " + pr.getID());
System.out.println("Hourly Pay Rate: " + pr.getHourlyPayRate());
System.out.println("Number Hours Worked: " + pr.getNumHoursWorked());
System.out.println("Gross Pay: $" + pr.calculateGrossPay() + "\n");
System.out.println("Welcome to the payroll screen. \n");
Scanner keyboard = new Scanner(System.in);
System.out.print("Please enter a name: ");
String newName = keyboard.nextLine();
System.out.print("Please enter an ID: ");
int newID = keyboard.nextInt();
pr.setID(newID);
System.out.print("Please enter an hourly pay rate: ");
double newPayRate = keyboard.nextDouble();
pr.setHourlyPayRate(newPayRate);
System.out.print("Please enter the number of hours worked: ");
int newHours = keyboard.nextInt();
pr.setNumHoursWorked(newHours);
if (newName == "")
{
throw new InvalidNameException();
}
else
{
pr.setName(newName);
}
ここに InvalidNameException があります
public class InvalidNameException extends Exception
{
/**
No-arg constructor
*/
public InvalidNameException()
{
super("Invalid name");
}
}