Java 如何实现自定义异常?
这是我的加班特例,如果销售目标没有达到,我会打印邮件Java 如何实现自定义异常?,java,eclipse,exception,Java,Eclipse,Exception,这是我的加班特例,如果销售目标没有达到,我会打印邮件 public class OverTimeException extends Exception { int salesTarget; public OverTimeException(int s) { salesTarget = s; } String myPrint() { return "exception
public class OverTimeException extends Exception {
int salesTarget;
public OverTimeException(int s) {
salesTarget = s;
}
String myPrint()
{
return "exception caught because sales target is " + salesTarget;
}
}
这是我想在salesTarget方法中使用异常的Clerk类。我的问题是如何将异常实现到salesTarget方法中?谢谢
public class Clerk extends Admin implements ClerkInterface {
final double payRate = 13.00;
final int salesTargetNum = 46;
//Member variables
private double unitSold;
//Constructor
public Clerk(String inName, String inId, double inHoursWorked,
double intkPay, double inAdmin_quota,double inUnitSold) {
super(inName, inId, inHoursWorked, intkPay, inAdmin_quota);
setUnitSold(inUnitSold);
}
//setUnitsSold method
private void setUnitSold(double inUnitSold) {
unitSold = inUnitSold;
}
//getUnitsSold
public double getUnitsSold(){
return unitSold;
}
//toString method
public String toString()
{
return " " + super.toString() + "Admin Quota " + getAdmin_quota() + "Units Sold" + getUnitsSold();
}
//method to confirm sales targets are made from ClerkInterface.
public void salesTarget() {
if(salesTargetNum >= unitSold){
System.out.println("Clerk has not meet sales target");
}
else
{
System.out.println("Clerk has meet sales target");
}
}
}//end Clerk
如果要抛出异常,只需执行以下操作
throw new OverTimeException(salesTargetNum);
如果要抛出异常,只需执行以下操作
throw new OverTimeException(salesTargetNum);
你需要
在方法签名中声明异常
需要时抛出该方法
e、 g
请注意,您不需要在方法签名中声明。您需要
if(salesTargetNum >= unitSold){
throw new OverTimeException(salesTarget);
} else {
System.out.println("Clerk has meet sales target");
}
在方法签名中声明异常
需要时抛出该方法
e、 g
注意,您不需要在方法签名中声明
if(salesTargetNum >= unitSold){
throw new OverTimeException(salesTarget);
} else {
System.out.println("Clerk has meet sales target");
}
请注意,在OverTimeException类中需要一个toString方法,而不是toPrint方法
另外,在方法声明的throws子句中添加此异常
请注意,在OverTimeException类中需要一个toString方法,而不是toPrint方法
另外,在方法声明的throws子句中添加此异常。使用
public void salesTarget() throws OverTimeException {
if(salesTargetNum >= unitSold){
throw new OverTimeException(salesTargetNum);
} else {
System.out.println("Clerk has meet sales target");
}
}
您的异常应该这样声明
public class OverTimeException extends Exception {
public OvertimeException(int s){
super("exception caught because sales target is " + s);
}
}
使用
您的异常应该这样声明
public class OverTimeException extends Exception {
public OvertimeException(int s){
super("exception caught because sales target is " + s);
}
}
我强烈建议您重写Exception类中的所有构造函数
我强烈建议您重写Exception类中的所有构造函数
我试过了,但它说salesTarget不能解析为局部变量,有什么想法吗?感谢在引发异常时要引用的成员是salesTargetNum,而不是salesTarget。您试图从何处引发异常?你能粘贴代码吗?是的,public void salesTarget{ifsalesTargetNum>=unitsell{抛出新的OverTimeExceptions;}否则{System.out.printlncler已达到销售目标;}}你正在引用salesTarget方法中的变量s,但当前范围内没有这样的变量,即。,s不是局部变量或Clerk类的属性。我想你想引用salesTargetNum,但我不确定。也许你想买些什么?不管怎样,s肯定是错的。我试过了,但它表明salesTarget不能解析为局部变量,有什么想法吗?感谢在引发异常时要引用的成员是salesTargetNum,而不是salesTarget。您试图从何处引发异常?你能粘贴代码吗?是的,public void salesTarget{ifsalesTargetNum>=unitsell{抛出新的OverTimeExceptions;}否则{System.out.printlncler已达到销售目标;}}你正在引用salesTarget方法中的变量s,但当前范围内没有这样的变量,即。,s不是局部变量或Clerk类的属性。我想你想引用salesTargetNum,但我不确定。也许你想买些什么?不管怎样,s肯定是错的。