【发布时间】:2014-09-29 14:23:20
【问题描述】:
好的。所以我有一个名为“PayrollDemo”的类,它使用了一个名为“Payroll”的类。我已经设置了几个异常类来管理某些异常,现在我只需要弄清楚如何抛出这些异常。
我想,我应该通过一系列 if 语句来检查输入的每个字段是否符合正确的标准。问题是,由于异常处理与我正在处理的类不同,所以我不确定如何抛出它。
所以在这里我要确保名称字符串不为空,如果它应该导致一个名为“InvalidNameException”的异常并将其抛出到我与我在同一文件夹中的“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");
}
}
【问题讨论】:
-
也许是我,但我不清楚你的问题到底是什么。你能澄清一下你在问什么吗?
-
这些将处理异常的类是什么样的?
-
string == ""永远不会是真的 -
@HovercraftFullOfEels - 我想知道如何向另一个类抛出异常。就像我的 InvalidNameException 一样。那是我与 PayrollDemo 在同一文件夹中的另一个类。我想要它做的是检查用户输入的名称是否为空字符串,如果是,则意味着将此异常抛出到将处理它的异常类。如果一切顺利,它将照常进行。
-
@WillTroll
==表示对象身份,而不是相等。您可以有 2 个单独的 String 对象,它们都是零长度,这样string1 == string2为假,但string1.equals(string2)为真