我正在尝试创建一个TravelCard类,该类还应该检查卡是否仍然可行(未过期)。但是我有这个错误
未报告的异常ParseExeption;必须被抓住或宣布被抛出
在这条线
this.expirationDate = sdf.parse(expiry);
如何在构造函数中设置到期日期?
我从未用过约会,就像有人会注意到那样。而且我在Java中还很陌生。
package something;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class TravelCard {
private double balance;
private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
private Date expirationDate;
private Date today = Calendar.getInstance().getTime();
public TravelCard(double balance, String expiry){
sdf.setLenient(false);
this.balance = balance;
this.expirationDate = sdf.parse(expiry);
}
public void pay(double price){
if (today.before(expirationDate)){
if(this.balance >= price){
this.balance -= price;
}
else {
System.out.println("Insufficient funds");
}
}
else {
System.out.println("Card expired");
}
}
public double getBalance(){
return balance;
}
}
最佳答案
这意味着parse()
方法将引发一个已检查的异常,即catch
异常或throw
。
捕获异常的方法:
public void TravelCard(double balance, String expiry){
sdf.setLenient(false);
this.balance = balance;
try {
this.expirationDate = sdf.parse(expiry);
} catch (ParseException e) {
e.printStackTrace();
}
}
引发异常的方式:
public void TravelCard(double balance, String expiry) throws ParseException{