引发异常的程序,声明“在清算账单之前不可能进行进一步的交易。”当客户未支付的信用卡金额超过 2000 美元或未支付长达 45 天时。假设当前日期是 01/12/2015
。
- 创建一个扩展
Exception
的自定义异常类OverLimitException
。 - 添加一个采用
Throwable
对象的构造函数,使用super()
调用父类(super class)构造函数并打印问题陈述中所述的输出。
我创建了两个类,一个是主类,另一个是账户
账户.java
import java.text.*;
import java.util.*;
import java.util.concurrent.TimeUnit;
public class Account {
String accountNumber;
String accountName;
Double dueAmount;
public Account(String accountNumber, String accountName,Double dueAmount) throws ParseException {
this.accountNumber = accountNumber;
this.accountName = accountName;
this.dueAmount = dueAmount;
}
public Account() {
}
public Boolean validate(String dueDate,Double unpaid,Double amount){
DateFormat sf = new SimpleDateFormat("dd/MM/yyyy");
sf.setLenient(false);
try{
Date d = sf.parse(dueDate);
Date d1 = sf.parse("01/12/2015");
// long curDate = new Date().getTime();
long diff =d1.getTime() - d.getTime();
long daysDiff = TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS);
if(daysDiff > 45 || unpaid > 2000){
throw new OverLimitException("Further Transactions Not Possible until clearance of bill.");
}
}catch(Exception e){
return false;
}
return true;
}
public void display() {
System.out.println("Transaction successsfully completed.");
System.out.println("Account Number : "+this.accountNumber);
System.out.println("Account Name : "+this.accountName);
System.out.println("Unpaid Amount : "+this.dueAmount);
}
}
但是我收到一个错误说明
error: cannot find symbol
throw new OverLimitException("Further Transactions Not Possible until clearance of bill.");
^
symbol: class OverLimitException
谁能帮我解决这个问题?
最佳答案
OverLimitException 不是 Java 自带的异常。
与您创建的其他类一样,您也必须编写该类;喜欢:
public class OverLimitException extends RuntimeException {
并提供一个以消息字符串为例的构造函数。
关于java - Java 中的 OverLimit 异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39168420/